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”