Q1:我正在写一个正则表达式,但没有成功。我想匹配以下内容:
so i would
如果没有那么匹配:
so i
然后:
i would
和
so
i
would
这是我的代码:
\b(so i|i would|so i would|(so|i|would))\b
它唯一匹配:所以,我,会,所以我,我会...但不匹配所以我会吗?
答案 0 :(得分:3)
正确订购你的正则表达式。
\b(so i would|so i|i would|(so|i|would))\b
将最长的字符串放在左侧。
|
是左关联的,因此,在正则表达式的版本中,匹配较短的字符串。
答案 1 :(得分:0)
把它放在开头
\b(so i would|so i|i would|(so|i|would))\b
答案 2 :(得分:0)
在组中留下最长的图案:\ b(long | ... | short)\ b
另一种解决方案:\b(so i would|i would|would|so i|so|i)\b
附:这是NFA正则表达式引擎功能,请参阅“掌握正则表达式”