无论字符序列如何创建匹配的正则表达式?

假设我要求用户输入提供的某些单词,他/她只会将它输入到一个文本框中,该文本框将被验证, 而不管其顺序如何 。我一直在寻找几个小时的答案,我被卡住了:/

例如,应该输入的单词是:foo,bar,green。

即使订单是酒吧绿色foo绿色酒吧 ,我仍然可以匹配它

我非常了解正则表达式的基础知识,但我不知道如何匹配这种类型的条件。任何答案都将非常感谢!


这会检查输入中是否有这三个单词,而不是更多:

/^(?=.*bbarb)(?=.*bgreenb)(?=.*bfoob)(?:s*bw+bs*){3}$/s

简单的答案:不要使用正则表达式。

只需explode()输入,然后手动检查单词是否正常。 检查输入是否正确的简单方法是:

if(!array_diff(explode(' ', $input), $valid_words)) {
    // input OK
}

使用explode()

http://sandbox.phpcode.eu/g/59c57

<?php 
$str = 'foo, bar, green'; 
$array = explode(',', $str); 
print_r($array);
链接地址: http://www.djcxy.com/p/13447.html

上一篇: How to create a regex that will match regardless of the sequence of characters?

下一篇: Regex to match anything but two words