PHP正则表达式在指定字符之前匹配字符串中的数字
我有一个字符串,它的输出结果可以是:PHP正则表达式在指定字符之前匹配字符串中的数字,php,regex,string,replace,preg-replace,Php,Regex,String,Replace,Preg Replace,我有一个字符串,它的输出结果可以是: First : 14:15 Second: 14:2 Third: 10:2 Fourht: 1:20 Fifth: 1:5 我的正则表达式只匹配上面的第一个和第三个示例: /(^[0-9]{2})/ 如果有1:10或1:2的输出,则没有输出(错误) 通缉结果: 14 14 10 1 1 我可以用preg_replace()或其他方法来完成吗?我也需要换正则表达式吗?如果是,我应该使用哪个正则表达式来匹配“:”字符之前的数字 谢谢你的信息和帮助 成功
First : 14:15
Second: 14:2
Third: 10:2
Fourht: 1:20
Fifth: 1:5
我的正则表达式只匹配上面的第一个和第三个示例:
/(^[0-9]{2})/
如果有1:10或1:2的输出,则没有输出(错误)
通缉结果:
14
14
10
1
1
我可以用preg_replace()或其他方法来完成吗?我也需要换正则表达式吗?如果是,我应该使用哪个正则表达式来匹配“:”字符之前的数字
谢谢你的信息和帮助 成功了
preg_match_all('(^(.*):)', $string, $matches);
echo $matches[1][0]; // output is right! 14, 14, 10, 1, 1
谢谢你的建议 要重新声明,regex不是此作业的正确工具
$output = explode(":",$input)[0];
为什么不在
:
上分解并从结果数组中选择第二个元素呢<代码>分解(“:”,“First:14:15')[1]?等等,您的输入看起来像是14:15
,等等吗。?然后爆炸,真的。如果已知字符串中只包含以:
分隔的数字,则这是唯一的最佳方式。如果字符串中包含多个:
,则此操作无效。Regex不是此作业的正确工具。Hm。。。我会记住的!目前它不包含多个。谢谢在这个例子中,你所展示的输入不是你在问题中所写的。你的答案可以使用:)但我相信正则表达式也可以,你的方法也不起作用@Shafizadeh如果你有正确的输入,它确实起作用-问题的措辞非常糟糕,但输入更像是$first=“14:15”代码>