我想出了如何检查OR病例,preg_match("/(word1|word2|word3)/i", $string);
。我无法弄清楚的是如何匹配AND情况。我想检查该字符串是否包含所有术语(不区分大小写)。如何匹配在PHP中使用正则表达式的所有术语?
回答
这是可能使用先行,例如:
preg_match('/^(?=.*word1)(?=.*word2)(?=.*word3)/i', $string)
然而
做一个和匹配在一个单一的正则表达式,它可能更清晰,也许更快地只是做外正则表达式:
preg_match('/word1/i', $string) && preg_match('/word2/i', $string) && preg_match('/word3/i', $string)
或者如果您的目标字符串像word1
那样简单:
stripos($string, 'word1')!==FALSE && stripos($string, 'word2')!==FALSE && stripos($string, 'word3')!==FALSE
+1为多个正则表达式。人们以某种方式总是忘记他们的源代码在考虑正则表达式时可能包含多行。这就像一个所有软件都是Perl单行程的世界。 – slebetman 2010-01-02 19:17:11
绝对多个匹配,分裂的问题往往是把一个复杂的正则表达式变成一个微不足道的解决方案 – 2010-01-02 20:12:09
如果您知道的条款将出现的顺序,你可以使用类似以下内容:
preg_match("/(word1).*(word2).*(word3)/i", $string);
如果没有定义的术语的顺序,你可能会使用3个独立的表达是最好的并检查他们全部匹配。一个表达是可能的,但可能很复杂。
preg_match("/word1.*word2.*word3)/i");
这工作,但他们必须出现在规定的顺序,你当然可以替代preg_match("/(word1.*word2.*word3|word1.*word3.*word2|word2.*word3.*word1| word2.*word1.*word3|word3.*word2.*word1|word3.*word1.*word2)/i");
但是那漂亮herendous,你就必须要疯了!会更好只使用strpos($haystack,$needle);
在一个循环,或多个正则表达式匹配。
我想在你的问题的情况下可使用和情况下会引起一些问题:
情况是这样的
words = "abcd","cdef","efgh"
确实有字符串匹配:
string = "abcdefgh"
也许你不应该使用REG.EXP
相当不错的观察。 – 2011-05-13 09:48:05
- 1. 如何替换所有匹配的正则表达式的PHP
- 2. 如何使PHP匹配正则表达式不匹配在线?
- 3. 匹配.PHP使用正则表达式
- 4. PHP:如何获得所有正则表达式匹配?
- 5. 正则表达式匹配所有
- 6. 正则表达式不匹配所有
- 7. 正则表达式匹配所有``不\ [\]
- 8. 如何在php中使用正则表达式匹配url?
- 9. 如何在PHP中将正则表达式与正则表达式匹配?
- 10. JavaScript正则表达式可以匹配任何一个术语
- 11. 如何在Erlang中使用正则表达式匹配正则表达式?
- 12. 用于匹配所有的PHP正则表达式
- 13. 如何找到匹配所有部分的所有正则表达式匹配?
- 14. 如何用正则表达式找到'{{**** *** **}}'的所有匹配项?
- 15. 如何匹配python正则表达式中的所有链接?
- 16. 正则表达式所有语言PHP
- 17. 使用正则表达式的Javascript正则表达式匹配
- 18. LUCENE:搜索匹配正则表达式的术语
- 19. 正则表达式来查找所有匹配的语句
- 20. PHP:如何匹配文档中所有正则表达式模式的出现
- 21. 如何在C#中使用正则表达式匹配规则#
- 22. 正则表达式匹配正则表达式模式外的所有内容
- 23. 如何使用正则表达式匹配列表中的所有项目
- 24. 使用PHP连接的base64_decode的正则表达式(正则表达式)匹配
- 25. PHP的正则表达式匹配所有的HTML标签
- 26. 如何用正则表达式匹配所有内容?
- 27. 使用正则表达式在php中匹配url模式
- 28. 正则表达式匹配括号外的所有匹配项?
- 29. PowerShell正则表达式匹配所有可能的匹配
- 30. PHP的正则表达式匹配所有网址
相关:http://stackoverflow.com/questions/469913/regular-expressions-is-there-an-and-operator – miku 2010-01-02 19:04:35