我与PHP的工作preg_match-我怎样才能找到如果双方foo并bar都存在,无论它是否是foobar或barfoo或something bar that foo.显然,类似的东西foo.*bar|bar.*foo会起作用,但是对于一个足够复杂的东西foo,bar我宁愿不要写两次.
如果它只是一个测试,你可以很容易地做两个检查:一个用于foo,另一个用于bar.
否则,如果你想在一个正则表达式中,你可以使用积极的前瞻:
(?=.*foo)(?=.*bar)
Run Code Online (Sandbox Code Playgroud)
每个都确保foo并且bar分别在字符串中的某个.*位置具有正则表达式指针所在的任何字符().
编辑:此外,为了性能,您可以添加行锚的开头,以便它不必检查字符串中的每个单个位置,如果字符串中不包含任何一个或两个单词:
^(?=.*foo)(?=.*bar)
Run Code Online (Sandbox Code Playgroud)