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

时间:2011-06-01 17:34:47

标签: php numbers substring

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

“8932?Test 14 String”

该函数将返回

“Test 14 String”

我写了以下似乎可以完成这项工作的功能:

    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而且为了教育而且我想知道有经验的人是否会有更好的解决方案。所有回复都表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:2)

您只需将strpossubstr

一起使用即可
echo substr($string,strpos($string,'?')+1);

你准备好了

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

阅读评论后

echo preg_replace( '/^[^a-z]+/i','',$string );

答案 1 :(得分:1)

  

找到字符串中的第一个字母   然后返回余数

function removenums($withnums)
{
    return preg_replace('/^[^A-Za-z]+/', '', $withnums);
}

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