无法匹配正则表达式

时间:2015-06-22 13:42:59

标签: php regex preg-match preg-match-all

我有一个像"5-2,5-12,15-27,5-22,50-3,5-100"

这样的字符串

我需要一个匹配所有出现的正则表达式,如下所示: -

5-2
5-12
5-22
5-100

匹配所有正确的正则表达式是什么。

3 个答案:

答案 0 :(得分:1)

使用以下正则表达式:

(?<!\d)5-\d{1,}

DEMO

答案 1 :(得分:1)

不确定是否理解您的需求,但是,如何:

$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
        )

)

答案 2 :(得分:0)

怎么样:

<强> Online Demo

<强> /(?<!\d)\d\-\d{1,3}/g

如果理解正确,模式的第一部分是一个数字\d,因此我们需要排除其他数字,后面是(?<!\d)后跟-,最后似乎是最多3个数字,如果您需要更多,可以删除3,它也可以使用\d{1,3}\d{1,}