我正在寻找检查字符串是否包含2个特定单词的正则表达式。

例如字符串包含rooster还是hen

最佳答案

匹配roosterhen作为完整单词的表达(即当它们是更长的不同单词的一部分时不匹配):

\b(rooster|hen)\b


这是一种安全措施,可避免部分匹配出现误报。

\b表示a word boundary,它是“单词字符”([A-Za-z0-9_])范围内的字符与任何其他字符之间的(零宽度)点。实际上,以上内容将:


"A chicken is either a rooster or a hen."中匹配
"Chickens are either a roosters or hens."中不匹配-但(rooster|hen)


附带说明一下,要允许使用复数,可以这样做:\b(roosters?|hens?)\b

07-28 10:48