Как удалить числа из строки с RegEx

У меня есть строка как это:

" 23 PM"

Я хотел бы удалить 23 таким образом, со мной оставляют PM или (с усеченным пространством) просто PM.

Какие-либо предложения?

Потребности быть в PHP

17
задан Click Upvote 29 July 2010 в 13:34
поделиться

7 ответов

echo trim(str_replace(range(0,9),'',' 23 PM'));
62
ответ дан 30 November 2019 в 09:57
поделиться
$str = preg_replace("/^[0-9 ]+/", "", $str);
3
ответ дан 30 November 2019 в 09:57
поделиться

Можно сделать с помощью ltrim

ltrim(' 23 PM', ' 0123456789');

Это удалит любые числа и пробелы из левой части строки. Если вам нужно для обеих сторон, вы можете использовать trim. Если вам нужна только правая сторона, вы можете использовать rtrim.

15
ответ дан 30 November 2019 в 09:57
поделиться

Regex

preg_replace('#[0-9 ]*#', '', $string);
3
ответ дан 30 November 2019 в 09:57
поделиться

Также можно использовать str_replace , который часто является более быстрой альтернативой RegEx.

str_replace(array(1,2,3,4,5,6,7,8,9,0,' '),'', ' 23 PM');
// or
str_replace(str_split(' 0123456789'), '', ' 23 PM');

, который заменит любое число 0-9 и пробел в строке, независимо от позиции.

5
ответ дан 30 November 2019 в 09:57
поделиться
preg_replace("/[0-9]/", "", $string);
14
ответ дан 30 November 2019 в 09:57
поделиться

Если вам нужны только последние два символа строки, используйте substr с отрицательным началом:

$pm = substr("  23 PM", -2); // -> "PM"
5
ответ дан 30 November 2019 в 09:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: