PHp RegExpressions

时间:2012-07-03 12:37:50

标签: php regex

我在chrome中有一个RegExp Tester扩展。针对搜索文本运行模式[ - ,]

“詹姆斯,巴约 - 一个好孩子”返回2场比赛

然而在php中运行如下的preg_match会返回false

<?php
 preg_match("[,-]", "james,bayo -is a good boy");
?>

期望它像regExp测试仪一样返回2, 我确信我错过了什么

1 个答案:

答案 0 :(得分:4)

你需要正则表达式分隔符,如下所示:

preg_match("/[,-]/", "james,bayo -is a good boy", $matches);
var_dump( $matches);

这将匹配两个字符中的一个 - 逗号或短划线。此外,为了检索匹配项,您需要将第3个参数指定为preg_match(),因为它将存储您的匹配项。

请注意,由于您使用的是preg_match(),因此您只能获得第一场比赛。因此,这将输出:

array(1) {
  [0]=>
  string(1) ","
}

如果你想要所有的比赛,你需要使用preg_match_all(),如下所示:

preg_match_all("/[,-]/", "james,bayo -is a good boy", $matches);
var_dump( $matches);

输出:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(1) ","
    [1]=>
    string(1) "-"
  }
}