如何创建一个正则表达式,无论字符序列中,将匹配?

说我需要用户输入某些词提供他/只会输入它在将要考虑 order.I的验证文本框一直在寻找了几个小时的答案和我卡:/

如话,应输入有:美孚,酒吧,绿色环保。

我仍然可以匹配它,即使顺序酒吧绿富 绿富巴

我非常知道正则表达式的非常基本的,但我不知道如何搭配这种类型的情况。任何答案将非常感激!

--------------解决方案-------------

此检查,如果你有确切的输入,仅此而已这三个字:

/^(?=.*\bbar\b)(?=.*\bgreen\b)(?=.*\bfoo\b)(?:\s*\b\w+\b\s*){3}$/s

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

刚刚explode()输入,然后手动检查的话都OK。 一个简单的方法来检查,如果输入的是好是这样的:

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

使用爆炸()

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

<?php
$str = 'foo, bar, green';
$array = explode(',', $str);
print_r($array);

这个正则表达式会检查您是否已经在你输入这些话:

(?=^.*?foo.*$)(?=^.*?bar.*$)(?=^.*?green.*$)^.*$

不过,这并不检查它没有别的了。 一般情况下,我同意别人不使用正则表达式为这件事。 拆分输入和核对你的字典。

分类:php 时间:2015-03-15 人气:0
本文关键词: PHP,正则表达式
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.236 (s). 10 q(s)