2017-11-25 115 views
1

这里是一个正则表达式是这样的:(JavaScript的)正则表达式匹配较长的项目

let exp = /^>=|>==|<=|<==/

当我使用exp匹配这样的字符串:

let str = ">==abc"; str.match(exp); // >=

如何使其尽可能匹配项目,而不使用/^>==?/?现在我必须把>=放在>==之后,比如/>==|>=,但是我想让它与位置无关。

+0

交替不是 “位置独立”,左边的第一个总是赢。如果你想保持这种变化,你可以尝试排除未完成的符号序列的负向前瞻:'/(?:> = |> == | <=|<==)(?![<> =])/' –

回答

1

这种模式看起来多余的,请使用下列之一:

^(<|>)={1,} 

https://regex101.com/r/E1yHVY/10


为了获得一个完整的匹配:

^(?:<|>)={1,} 
+0

我必须动态地构造常规回归,所以我只能这样做。 – laoqiren

+1

@laoqiren:即使你必须动态地构建你的模式,没有任何东西禁止在加入之前按长度对项目进行排序。 –