我有一个类似"5-2,5-12,15-27,5-22,50-3,5-100"
的字符串
我需要一个正则表达式,它匹配以下所有事件:-
5-2
5-12
5-22
5-100
匹配它们的正确的正则表达式是什么?
发布于 2015-06-22 13:53:16
发布于 2015-06-22 13:53:20
不一定能很好地理解你的需求,但是,不如:
$str = "5-2,5-12,15-27,5-22,50-3,5-100";
preg_match_all('/\b5-\d+/', $str, $matches);
print_r($matches)
或
preg_match_all('/\b\d-\d+/', $str, $matches);
输出:
Array
(
[0] => Array
(
[0] => 5-2
[1] => 5-12
[2] => 5-22
[3] => 5-100
)
)
发布于 2015-06-22 13:56:40
不如:
/(?<!\d)\d\-\d{1,3}/g
如果正确理解,模式的第一部分是一个单数\d
,因此我们需要排除其他数字,后面跟着一个-
,最后似乎是一个最多3位的数字,如果您需要更多的话,您可以删除3,而且它也会工作,所以它要么是\d{1,3}
,要么是\d{1,}
。
https://stackoverflow.com/questions/30981540
复制相似问题