preg_match_all("/(\d{12})
(?:,|$)/","111762396541,561572500056,561729950637,561135281443",$matches);
的var_dump($ MATHES):
array (size=2)
0 =>
array (size=4)
0 => string '561762396543,' (length=13)
1 => string '561572500056,' (length=13)
2 => string '561729950637,' (length=13)
3 => string '561135281443' (length=12)
1 =>
array (size=4)
0 => string '561762396543' (length=12)
1 => string '561572500056' (length=12)
2 => string '561729950637' (length=12)
3 => string '561135281443' (length=12)
但我希望这样的$匹配:
array (size=4) 0 => string '561762396543,' (length=13) 1 => string '561572500056,' (length=13) 2 => string '561729950637,' (length=13) 3 => string '561135281443' (length=12)
我想匹配数字组(每个都有12位数)和一个后缀逗号(如果有)。例程是最后一组数字,它不必匹配逗号,因为它到达行尾。
答案 0 :(得分:1)
请改为尝试:
preg_match_all("/(\d{12}(?:,|$))/","111762396541,561572500056,561729950637,561135281443",$matches);
当$在你的角色范围括号[]内时,它正在寻找$字符而不是行尾。
编辑:如果你想在你的比赛中加入逗号,那么只需使用上面的代码示例并查看$ matches [0]。
如果你想要一个更容易的语法来匹配任何类型的单词边界,\ b也会匹配逗号和行尾:
preg_match_all(" /(\ d {12} \ B)/"" 111762396541,561572500056,561729950637,561135281443",$匹配);
德尔>