如何在PHP中的第一个非数字字符之前获取一段字符串

Bri*_*son -3 php

我有以下模式的字符串:12345ABCDE6789其中每组数字和字母的长度都是可变的。永远只有数字和字母,没有特殊字符。

我需要一种方法来获取数字直到第一个字母,以便上面的示例将返回12345.

我的想法是我可以找到第一个字母的字符串位置,然后将字符串修剪到该位置。但是我无法弄清楚如何在不知道角色是什么的情况下获得该索引。我发现的其他解决方案已经知道第一个字母是“A”,而我​​的可以是任何字母。

有没有一种简洁的方法来做到这一点?

我对正则表达式没有太多经验,但也许有更好的解决方案来解决这个问题?

fon*_*ini 5

<?php

$re = '/^[0-9]+/m';
$str = '12345ABCDE6789';

preg_match($re, $str, $matches);

var_dump($matches[0]); // 12345
Run Code Online (Sandbox Code Playgroud)

https://regexr.com/4mcfr