Php 从字符串中删除前面的数字/符号

Php 从字符串中删除前面的数字/符号,php,numbers,substring,Php,Numbers,Substring,我正在尝试用PHP编写一个函数,它查找字符串中的第一个字母,然后返回字符串的其余部分。例如,如果您有一个字符串: “8932?测试14字符串” 函数将返回 “测试14字符串” 我已经编写了以下函数来完成这项工作: function removenums($withnums) { $letters = str_split($withnums); $position = 0; foreach($letters as $

我正在尝试用PHP编写一个函数,它查找字符串中的第一个字母,然后返回字符串的其余部分。例如,如果您有一个字符串:

“8932?测试14字符串”

函数将返回

“测试14字符串”

我已经编写了以下函数来完成这项工作:

    function removenums($withnums) {

            $letters = str_split($withnums);
            $position = 0;
            foreach($letters as $letter) {
                    if(preg_match("/[a-zA-Z]/",$letter)) {
                            break;
                    }
                    $position++;
            }

            $withoutnums = substr($withnums,$position);
            return $withoutnums;
    }

然而,我只是在学习PHP,出于教育的考虑,我想知道有经验的人是否有更好的解决方案。欢迎所有回复。谢谢

您只需将
strop
substr

echo substr($string,strpos($string,'?')+1);
你准备好出发了吗

请注意,您应该尽可能避免使用
preg.*
函数,因为它们通常比更简单的
str*
函数慢

看了你的评论之后 查找字符串中的第一个字母,然后 然后返回余数


假设OP的输入在他想要的文本之前总是有一个问号,你的建议几乎是正确的——但在提供的示例中,你似乎找到了一个额外的空格。是的,这是一个很好的解决方案,但是,在输入文本之前并不总是有问号。您需要确切地告诉我们它是如何成为所有可能的格式的。我们没有魔法对不起,字符串在第一个字母之前可以有任何可能的数字/符号组合。函数应该去掉前面的任何数字/符号。@Kurties:请阅读我的答案,我已经添加了您需要的解决方案。如果这对你有帮助,请考虑将此标记为答案。谢谢
echo preg_replace( '/^[^a-z]+/i','',$string );
function removenums($withnums)
{
    return preg_replace('/^[^A-Za-z]+/', '', $withnums);
}

echo removenums('8932? Test 14 String');
// output: Test 14 String