PHP正则表达式在连字符之后和之前获取值( - )

时间:2016-04-05 16:50:17

标签: php regex replace

我正在尝试实现一个PHP正则表达式来获取两个数值:一个在短划线“ - ”符号之前,另一个在符号之后。

假设我的范围是320-420

我知道我可以使用

preg-match("/[^-]+$/", "320-420")

但正则表达式我只考虑符号后面的数字,我还需要将两个数字(320和420)保存在两个变量中,这些函数不会这样做。

如何实现这一结果?

2 个答案:

答案 0 :(得分:2)

使用正则表达式:

preg_match('/(\d+)\-(\d+)/', '320-420', $matches)

但在我看来,最好的解决方案是:

list ($one, $two) = explode('-', '320-420');

答案 1 :(得分:2)

如果您只有number-number,则根据某些人的建议使用explode()是最佳方法。

但是假设你有这样的字符串:

  

速度范围应为每小时30-50公里。

在这种情况下,RegEx应该用于匹配字符串。

使用像(\d+)-(\d+)这样的简单正则表达式将捕获capturing groups中的两个值。

<强> Regex101 Demo