我有一个单词列表 -"foo"
, "bar"
, "baz"
- 我想编写一个正则表达式来匹配至少包含其中两个的字符串。例如。,"foo baz"
应该匹配同时"ba foo z"
不应该。
显而易见的解决方案"(foo|bar|baz).*(foo|bar|baz)"
有效,但我觉得它不令人满意,因为它列出了单词twice。如果我有 25 个单词而不是 3 个单词怎么办?如果我正在查找至少包含 4 个给定单词而不是仅 2 个单词的字符串该怎么办?
听起来您并没有在寻找确切的单词,所以 Donkey 的解决方案可能不是您想要的
((foo|bar|baz).*?){2}
它在文本中搜索任何这些字符串,然后搜索任何字符,直到再次找到这些可选字符串之一,并且由于惰性任何字符部分将通过不匹配任何内容来实现,因此匹配完成。
如果您希望它匹配多行,请务必打开 dot all,或使用 \s\S 而不是 dot。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)