Как удалить числа из строки с помощью регулярного выражения


У меня есть строка, подобная этой:

" 23 PM"

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

Есть какие-нибудь предложения?

Должен быть в PHP

Author: Click Upvote, 2010-07-29

8 answers

echo trim(str_replace(range(0,9),'',' 23 PM'));
 62
Author: Mark Baker, 2010-07-29 13:42:38

Может обойтись без ltrim

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

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

 15
Author: Gordon, 2010-07-29 13:35:59
preg_replace("/[0-9]/", "", $string);
 14
Author: tomasbelusky, 2010-07-29 13:46:08

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

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
Author: Gordon, 2010-07-29 13:41:22

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

$pm = substr("  23 PM", -2); // -> "PM"
 5
Author: Andy E, 2010-07-29 13:45:59
$str = preg_replace("/^[0-9 ]+/", "", $str);
 3
Author: Toto, 2010-07-29 13:42:14

Регулярное выражение

preg_replace('#[0-9 ]*#', '', $string);
 3
Author: Alex Sawallich, 2010-07-30 07:54:18

Вы также можете использовать следующее:

preg_replace('/\d/', '',' 23 PM' );
 2
Author: Dimpal Gohil, 2015-04-16 10:04:19