我不小心将括号从
中删了/true|false/
但它有效!据我所知,|
表示"前面的模式或后续模式",e
或f
,或等同于/tru(e|f)alse/
。之后我注意到了我的错误,但感到困惑。这不应该只匹配truealse
和trufalse
吗?然后我做了更多测试,发现它与那些匹配,太! 为什么匹配true
,false
,truealse
和trufalse
?
答案 0 :(得分:4)
“前一个模式”是当前组中|
之前的所有内容。因此,true
是前面的模式,false
是后续模式。
如果您确实只想匹配trufalse
和truealse
,则可以使用tru(e|f)alse
在|
周围建立分组。
至于为什么它匹配truealse
:它匹配true
,因为你没有指定任何锚点。因此,它将匹配其中包含true
或false
的任何字符串。