我正在尝试实现一个PHP正则表达式来获取两个数值:一个在短划线“ - ”符号之前,另一个在符号之后。
假设我的范围是320-420
我知道我可以使用
preg-match("/[^-]+$/", "320-420")
但正则表达式我只考虑符号后面的数字,我还需要将两个数字(320和420)保存在两个变量中,这些函数不会这样做。
如何实现这一结果?
答案 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 强>