String to be matched = "AAA/up to eight upper case letters/AAA" :
ex1 : AAA/BB/AAA
ex2 : AAA//AAA
ex3: AAA/BBCCDDEEFF/AAA
如何匹配中间有0到8个大写字母的字符串(即在正斜杠之间)?
I tried regex : AAA/(?!(.*[a-z].*)[A-Z]{0,8})/AAA
但是它不匹配上面的任何字符串。
(Regex AAA/[A-Z]{0,8}/AAA
确实匹配上面的字符串,但它也匹配小写字母。ex: AAA/bb/AAA
)
您的原始AAA/[A-Z]{0,8}/AAA
是正确的,但是您已经在regex之外的某个地方设置了"不区分大小写"的regex修饰符,因此您也可以匹配小写字母。(你是否在notepad++中勾选了"匹配大小写"复选框?)
您可以使用(?-i)
构造使regex(或表达式的一部分)区分大小写:
(?-i)AAA/[A-Z]{0,8}/AAA
演示:https://regex101.com/r/aS2iW8/1
你可以这样做:
^A{3}/([A-Z]{0,8})/A{3}$
现在匹配的1
组将得到两个/
中的内容。