如果表达式B跟随A,则返回true

时间:2020-02-27 15:34:47

标签: javascript regex

我试图找到一种解决方案,如果在表达式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

JSFiddle

3 个答案:

答案 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)

您需要在行末使用onComplete()来声明行末的位置,还需要在行的起始处使用$来声明行的位置,以使{{ 1}},^也可以忽略。因此,更新正则表达式如下:

BFA

DEMO

相关问题