我想匹配整个单词的正则表达式。
在下面的示例中,我尝试匹配 s
或 season
但我所拥有的匹配 s
、e
、a
、o
和 n
。
[s|season]
如何制作正则表达式来匹配整个单词?
最佳答案
方括号用于字符类,您实际上正在尝试匹配以下任何一个:s
、|
、s
(再次)、e
、a
、s
(再次)、o
和 n
.
使用括号代替分组:
(s|season)
或非捕获组:
(?:s|season)
<小时/>
注意:非捕获组告诉引擎它不需要存储匹配项,而另一个(捕获组则需要)。对于小东西,两者都可以,对于“重型”东西,您可能想先看看是否需要匹配。如果不这样做,最好使用非捕获组来分配更多内存用于计算,而不是存储您永远不需要使用的东西。
关于regex - 匹配单词或其前缀的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18402416/