0

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

"james,bayo -is a good boy" 返回 2 场比赛

但是在 php 中运行如下 preg_match 会返回 false

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

期望它像 regExp 测试器一样返回 2,我确定我遗漏了一些东西

4

1 回答 1

4

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

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

这将匹配两个字符之一 - 逗号或破折号。此外,为了检索匹配项,您需要将第三个参数指定为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) "-"
  }
}
于 2012-07-03T12:38:58.803 回答