PHp正则表达式

PHp正则表达式,php,regex,Php,Regex,我在chrome中有一个RegExp测试扩展。针对搜索文本运行模式[-,] “詹姆斯,贝约-是个好孩子”复出两场比赛 但是,在php中运行下面的preg_匹配将返回false <?php preg_match("[,-]", "james,bayo -is a good boy"); ?> 希望它像regExp测试仪一样返回2, 我确信我遗漏了一些东西您需要正则表达式分隔符,例如: preg_match("/[,-]/", "james,bayo -is a good boy

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

“詹姆斯,贝约-是个好孩子”复出两场比赛

但是,在php中运行下面的preg_匹配将返回false

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

希望它像regExp测试仪一样返回2,
我确信我遗漏了一些东西

您需要正则表达式分隔符,例如:

preg_match("/[,-]/", "james,bayo -is a good boy", $matches);
var_dump( $matches);
这将匹配两个字符中的一个-逗号或破折号。此外,为了检索匹配项,您需要将第三个参数指定为
preg_match()
,因为它将存储匹配项

请注意,由于您使用的是
preg_match()
,因此只能获得第一个匹配项。因此,按原样,这将输出:

array(1) {
  [0]=>
  string(1) ","
}
如果需要所有匹配项,则需要使用,如下所示:

preg_match_all("/[,-]/", "james,bayo -is a good boy", $matches);
var_dump( $matches);
这将产生:

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

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

preg_match("/[,-]/", "james,bayo -is a good boy", $matches);
var_dump( $matches);
这将匹配两个字符中的一个-逗号或破折号。此外,为了检索匹配项,您需要将第三个参数指定为
preg_match()
,因为它将存储匹配项

请注意,由于您使用的是
preg_match()
,因此只能获得第一个匹配项。因此,按原样,这将输出:

array(1) {
  [0]=>
  string(1) ","
}
如果需要所有匹配项,则需要使用,如下所示:

preg_match_all("/[,-]/", "james,bayo -is a good boy", $matches);
var_dump( $matches);
这将产生:

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