我在 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,我确定我遗漏了一些东西
您需要正则表达式分隔符,如下所示:
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) "-"
}
}