有没有办法匹配句子中的一组单词?
要求是我想检查一个句子是否包含以下单词 po
或 p.o
或 p.o
或 box
。但它不应该捕获帖子或沙箱。
po --> 错误
发布 --> 成功
框-->错误
河马 --> 成功
提前致谢
最佳答案
这应该可以做到:
/\b(p\.?o|box)\b/g
- 第一个
\b
匹配单词组的开头 ( . . . )
设置匹配组p\.?o
是第一个模式,它匹配“p”和“o”,“p”后面有一个可选的句点(“.”)- “|”表示匹配第一个模式或第二个模式
box
是第二个模式,仅匹配单词“box”:)- 第二个
\b
匹配单词组的末尾 g
使模式“贪婪”,因此它将匹配该模式的所有出现
如果您希望它不区分大小写,请在模式末尾包含“i”参数:
/\b(p\.?o|box)\b/gi <--- right here
编辑:为了简化模式,我删除了“o”后面的\.?
。既然“.”必须是模式中的最后一个字符,匹配“p.o.”没有区别。和“p.o”。 。 。如果“p.o”之后的下一个字符是句点或空格,则它应该匹配。如果它是一个字母(例如),则不应如此,但尾随“.”的存在。确实与支票无关。
关于javascript - 用于匹配一组单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804020/