对几个选项进行preg_match验证,否则替换为null

时间:2014-03-05 07:12:31

标签: php regex

我需要验证我的字符串变量,它必须包含以下选项之一: 等待,好的,拒绝,未付,过期。我如何在几个选项上编写正则表达式?

3 个答案:

答案 0 :(得分:3)

if (preg_match('/^Waiting|Ok|Rejected|Unpaid|Expired$/', $str, $matches)) {
  //..
}

但你不能使用正则表达式来满足这些要求,你可以检查它是否在数组中:

$valid_status = array('Waiting', 'Ok', 'Rejected', 'Unpaid', 'Expired');
if (in_array($str, $valid_status, true)) {
  //..
}

答案 1 :(得分:0)

类似的东西:

  $data = "Waiting text";

    if(preg_match('[Waiting|Ok|Rejected|Unpaid|Expired]', $data)) { } else { }

答案 2 :(得分:0)

以下是正则表达式替换的文档: http://php.net/manual/en/regexp.reference.alternation.php