Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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++_Regex Lookarounds_Regex Greedy - Fatal编程技术网

Regex 正则表达式贪婪范围

Regex 正则表达式贪婪范围,regex,notepad++,regex-lookarounds,regex-greedy,Regex,Notepad++,Regex Lookarounds,Regex Greedy,待匹配字符串=“AAA/最多八个大写字母/AAA”: 例1:AAA/BB/AAA 例2:AAA//AAA 示例3:AAA/BBCCDDEEFF/AAA 我如何匹配字符串为零到中间的八个大写字母(即在前斜杠之间)?< /P> 我试过regex:AAA/(?!(.[a-z].[a-z]{0,8})/AAA 但它与上面的任何字符串都不匹配 (RegexAAA/[A-Z]{0,8}/AAA确实匹配上面的字符串,但它也匹配小写字母。 ex:AAA/bb/AAA)您可以执行以下操作: ^A{3}/([A-Z

待匹配字符串=“AAA/最多八个大写字母/AAA”: 例1:AAA/BB/AAA 例2:AAA//AAA 示例3:AAA/BBCCDDEEFF/AAA

我如何匹配字符串为零到中间的八个大写字母(即在前斜杠之间)?< /P> 我试过

regex:AAA/(?!(.[a-z].[a-z]{0,8})/AAA

但它与上面的任何字符串都不匹配
(Regex
AAA/[A-Z]{0,8}/AAA
确实匹配上面的字符串,但它也匹配小写字母。
ex:AAA/bb/AAA

您可以执行以下操作:

^A{3}/([A-Z]{0,8})/A{3}$
现在,匹配的组
\1
将获得两个
/
内的内容


您原来的
AAA/[A-Z]{0,8}/AAA
是正确的,但是您在正则表达式之外的某个地方设置了“不区分大小写”的正则表达式修饰符,因此您还可以匹配小写字母。(您是否在记事本++中选中了“匹配案例”复选框?)

您可以使用
(?-i)
构造使正则表达式(或表达式的一部分)区分大小写:

(?-i)AAA\/[A-Z]{0,8}\/AAA

演示:

hmm。。出于某种原因,它匹配像“AAA/bb/AAA”这样的字符串(至少在记事本++)不,这个正则表达式不能匹配
AAA/bb/AAA
@anubhava在某些情况下,它可以。例如,当不区分大小写模式打开时。@anubhava,OP似乎在使用记事本+,默认情况下启用了不区分大小写的查找(有效地触发
/i
regex修饰符)。添加记事本++标记,这非常重要。是的!这就是问题所在,谢谢