注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
PowerShell求助&讨论
» [已解决]PowerShell正则表达式匹配第三行到指定字符串之前的所有行
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
qixiaobin0715
发短消息
加为好友
qixiaobin0715
当前离线
UID
74702
帖子
2877
精华
0
积分
4232
PB
2909
技术
441
捐助
0
阅读权限
90
在线时间
5030 小时
注册时间
2016-2-20
最后登录
2024-12-31
大校
帖子
2877
积分
4232
技术
441
捐助
0
注册时间
2016-2-20
1
楼
跳转到
»
发表于 2021-5-19 10:29
|
显示全部帖子
回复
4#
wxyz0001
不是太了解PowerShell,PowerShell对逆序环视字符长度没限制吗?
TOP
qixiaobin0715
发短消息
加为好友
qixiaobin0715
当前离线
UID
74702
帖子
2877
精华
0
积分
4232
PB
2909
技术
441
捐助
0
阅读权限
90
在线时间
5030 小时
注册时间
2016-2-20
最后登录
2024-12-31
大校
帖子
2877
积分
4232
技术
441
捐助
0
注册时间
2016-2-20
2
楼
发表于 2021-5-19 10:51
|
显示全部帖子
我是指这部分:(?<=^.*\n.*\n),逆序环视长度(*)不固定可以吗?好像好多语言都有限制的。
TOP
qixiaobin0715
发短消息
加为好友
qixiaobin0715
当前离线
UID
74702
帖子
2877
精华
0
积分
4232
PB
2909
技术
441
捐助
0
阅读权限
90
在线时间
5030 小时
注册时间
2016-2-20
最后登录
2024-12-31
大校
帖子
2877
积分
4232
技术
441
捐助
0
注册时间
2016-2-20
3
楼
发表于 2021-5-19 11:03
|
显示全部帖子
有的书上叫:负向零宽断言
TOP
qixiaobin0715
发短消息
加为好友
qixiaobin0715
当前离线
UID
74702
帖子
2877
精华
0
积分
4232
PB
2909
技术
441
捐助
0
阅读权限
90
在线时间
5030 小时
注册时间
2016-2-20
最后登录
2024-12-31
大校
帖子
2877
积分
4232
技术
441
捐助
0
注册时间
2016-2-20
4
楼
发表于 2021-5-19 14:26
|
显示全部帖子
回复
9#
wxyz0001
奥,原来如此,Powershell是内置在.NET框架上的脚本语言。所以负向零宽断言不受长度上的限制,其他框架好像不行。
TOP
qixiaobin0715
发短消息
加为好友
qixiaobin0715
当前离线
UID
74702
帖子
2877
精华
0
积分
4232
PB
2909
技术
441
捐助
0
阅读权限
90
在线时间
5030 小时
注册时间
2016-2-20
最后登录
2024-12-31
大校
帖子
2877
积分
4232
技术
441
捐助
0
注册时间
2016-2-20
5
楼
发表于 2021-5-24 10:09
|
显示全部帖子
回复
14#
wxyz0001
顾名思义:所谓“零宽”,表示不匹配任何字符;“断言”,表示只起到判断作用。
比如上面表达式“(?<=(\n){2})(.*?)(?=(\n上一篇))”中,对应关系为:
group(1)——(\n)
group(2)——(.*?)
group(3)——(\n上一篇)
如果表达式改为“(?<=\n{2})(.*?)(?=\n上一篇)”,对应关系就只存在group(1)——(.*?)
不知我说的对否?
TOP
qixiaobin0715
发短消息
加为好友
qixiaobin0715
当前离线
UID
74702
帖子
2877
精华
0
积分
4232
PB
2909
技术
441
捐助
0
阅读权限
90
在线时间
5030 小时
注册时间
2016-2-20
最后登录
2024-12-31
大校
帖子
2877
积分
4232
技术
441
捐助
0
注册时间
2016-2-20
6
楼
发表于 2021-5-24 23:41
|
显示全部帖子
回复
16#
wxyz0001
group(0)我不知应当叫做什么,姑且起名为全部匹配,应当整个表达式匹配的内容吧。比如说,用([a-z]+)-([0-9]+)-([A-Z]+)匹配good-147-BAD,对应关系应当是:
group(1)——good
group(2)——147
group(3)——BAD
group(0)——good-147-BAD
TOP
qixiaobin0715
发短消息
加为好友
qixiaobin0715
当前离线
UID
74702
帖子
2877
精华
0
积分
4232
PB
2909
技术
441
捐助
0
阅读权限
90
在线时间
5030 小时
注册时间
2016-2-20
最后登录
2024-12-31
大校
帖子
2877
积分
4232
技术
441
捐助
0
注册时间
2016-2-20
7
楼
发表于 2021-5-25 06:20
|
显示全部帖子
(?<=a)b,是匹配前面是a的b字符,得到匹配的只是b;b前面为a,是得到匹配的前提条件。
TOP
返回列表
BAT原创&转载
UNIX/Linux Shell
Python
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]