Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 记事本++;和正则表达式_Regex_Notepad++ - Fatal编程技术网

Regex 记事本++;和正则表达式

Regex 记事本++;和正则表达式,regex,notepad++,Regex,Notepad++,我正在使用正则表达式对Notepad++中的Find进行一些测试。这是我的问题,我不知道为什么: 我的文字是: abc/xyz/p234/s-sdf 以下正则表达式非常匹配: [a-z]+/[a-z]+(/p[0-9]+)/s-[a-z]+ 但为什么以下正则表达式(添加了“?”)不再匹配: [a-z]+/[a-z]+(/p[0-9]+)?/s-[a-z]+ 在最后一个正则表达式中,“?”表示(/p[0-9]+)可以出现零次或一次,对吗?是的,?表示前面的标记(p[0-9]+)可以出现,也可

我正在使用正则表达式对Notepad++中的Find进行一些测试。这是我的问题,我不知道为什么:

我的文字是:

abc/xyz/p234/s-sdf
以下正则表达式非常匹配:

[a-z]+/[a-z]+(/p[0-9]+)/s-[a-z]+
但为什么以下正则表达式(添加了“?”)不再匹配:

[a-z]+/[a-z]+(/p[0-9]+)?/s-[a-z]+

在最后一个正则表达式中,“?”表示(/p[0-9]+)可以出现零次或一次,对吗?

是的,
表示前面的标记(
p[0-9]+
)可以出现,也可以不出现……这两个正则表达式都匹配您的示例。你确定记事本不太合适吗?第二种模式在regex101上匹配:两种模式都匹配我的文本。使用regex-find时,请确保光标位于文件/文本的开头,因为N++上的regex-find只能在光标的位置之后才能找到某些内容(N++版本6.6.8)。@kien我将添加这一点作为答案并自行接受。它将来可能会帮助别人。