PHP 正则表达式匹配字符串中指定字符之前的数字

PHP regex match numbers from string before specified character

我有一个字符串,它的输出结果可能是这样的:

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

https://regex101.com/r/aZ5uQ6/1

谢谢你的想法!

重申一下,正则表达式不是这项工作的正确工具。

$output = explode(":",$input)[0];