为什么这个正则表达式会匹配 true 和 false?

Sup*_*tar 0 regex

我不小心漏掉了括号

/true|false/
Run Code Online (Sandbox Code Playgroud)

但它成功了!据我所知, a 的|意思是“前面的模式或后面的模式”,所以e或f,或相当于/tru(e|f)alse/。后来我注意到了我的错误,但很困惑。这不应该只匹配truealseand吗trufalse?然后我做了更多测试,发现它也符合这些!为什么会匹配true、false、truealse和trufalse?

小提琴: https: //regex101.com/r/90CEll/1

nne*_*neo 6

“前面的模式”是当前组中 ,之前的所有内容。|因此,true是前一个模式,false是后继模式。

如果您实际上只想匹配trufalse和truealse,则可以用来tru(e|f)alse围绕 建立分组|。

至于为什么匹配truealse:它是匹配的,true因为您没有指定任何锚点。因此,它将匹配其中包含true或 的任何字符串。false