【问题标题】:php preg_match regexphp preg_match 正则表达式
【发布时间】:2009-09-29 20:56:54
【问题描述】:

仍然有正则表达式问题..需要匹配以下字符

a-zA-z9-0 , . ' " ( ) _ - : (空格)

并非所有的值都具有所有这些,但可以具有它们。除了括号、Single Quoytes 和 Double Quoytes,我什么都有。

/^[\w. ,\/:_-]+$/ 

更新:

我得到了它:"/^[\w. ,:()'\"-]+$/"

$val_1 = "Abh acb 123 . - _ 's ";
$val_2 = "Asc";
$val_3 = "234";
$val_4 = "nj%"; // Fail
$val_5 = "Help (me)";
$val_6 = "What's wrong?"; // Fail
$val_7 = "She's here";
$val_8 = "No: 123.00, 432.00";
$val_9 = 'Need to " Double" ';

$var_array = array($val_1, $val_2, $val_3, $val_4, $val_5, $val_6, $val_7, $val_8, $val_9);

foreach ($var_array as $k=>$d) {
    if ((preg_match("/^[\w. ,:()'\"-]+$/", $d))) {
        echo "Yeah it matches!!!<span style='color:green'>".$d."</span><br />";
    } else {
        echo "Try again, thie FAILED<span style='color:red'>".$d."</span><br />";
    }
}

感谢大家的帮助

【问题讨论】:

    标签: php regex preg-match


    【解决方案1】:
    $pat = "/^[\w. ,\\/:_()'\"-]/";
    

    【讨论】:

      【解决方案2】:

      要匹配所有这些,您只需要:

      preg_match("/[a-zA-Z0-9,.'\"()_- :]/", $string);
      

      【讨论】:

      • 应该转义 - :) 这样会报错,或者不能正常工作(可能是这个)
      • 我有一个几乎完全一样的匹配,我不逃避连字符,工作正常:)
      【解决方案3】:
      /^[-a-zA-Z0-9,.'"()_: ]+$/ 
      

      这应该可以。但是如果你把它放到一个字符串中,一定要转义所需的引号。

      【讨论】:

        【解决方案4】:

        在其他提交的帮助下,我找到了可行的解决方案:

        "/^[\w. ,:()'\"-]+$/"
        

        感谢大家的帮助

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-05
          • 2014-06-28
          • 1970-01-01
          • 2012-01-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多