Удалить предыдущие цифры / символы из строки - PullRequest
1 голос
/ 01 июня 2011

Я пытаюсь написать функцию в 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 ]

2 голосов
/ 01 июня 2011

Вы можете просто использовать strpos с substr

echo substr($string,strpos($string,'?')+1);

И вы готовы к работе

Пожалуйста, обратите внимание, что вам следует по возможности избегать preg_* функций, потому что они обычномедленнее, чем простые str* функции

После прочтения вашего комментария

echo preg_replace( '/^[^a-z]+/i','',$string );
1 голос
/ 01 июня 2011

находит первую букву в строке, а затем возвращает остаток

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

echo removenums('8932? Test 14 String');
// output: Test 14 String
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...