无论字符序列如何创建匹配的正则表达式?
假设我要求用户输入提供的某些单词,他/她只会将它输入到一个文本框中,该文本框将被验证, 而不管其顺序如何 。我一直在寻找几个小时的答案,我被卡住了:/
例如,应该输入的单词是: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?