我在chrome中有一个RegExp Tester扩展。针对搜索文本运行模式[ - ,]
“詹姆斯,巴约 - 一个好孩子”返回2场比赛
然而在php中运行如下的preg_match会返回false
<?php
preg_match("[,-]", "james,bayo -is a good boy");
?>
期望它像regExp测试仪一样返回2, 我确信我错过了什么
答案 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) "-"
}
}