我试图找到一种解决方案,如果在表达式A之后的某些表达式B有效,则返回真值。
例如-
如果我想将字符串与正则表达式匹配-F[A-Z]{0,2}
F
FA
FB
FAA
FAAA
其中F
是表达式A,这里[A-Z]{0,2}
是表达式B
它与FAAA
不匹配,因为我已经提到了最大数量限制为2。
所以预期的输出是-
F
FA
FB
FAA
答案 0 :(得分:2)
您需要使用:
\bF[A-Z]{0,2}\b
或
^F[A-Z]{0,2}$
您当前为真,因为确实发生了匹配。您需要对匹配进行某种限制。
F[A-Z]{0,2}
说,先匹配F
,然后匹配0至2个大写字母字符。之前或之后的任何东西仍然可以存在。
有关演示,请参见https://regex101.com/r/KLKTS4/2/。
答案 1 :(得分:1)
在正则表达式的末尾添加$
应该可以解决此问题:
F[A-Z]{0,2}$
https://regex101.com/r/1ADic0/2
$
符号将确保您位于行尾。您可以看到许多以^
开头和以$
结尾的正则表达式(对于多行,则是\A
和\z
)。这种模式基本上意味着:我的regexp应该匹配整个字符串。
答案 2 :(得分:0)