PHP раздеть строку - PullRequest
       1

PHP раздеть строку

0 голосов
/ 25 января 2012

У меня есть строка в PHP ($string), и я хотел бы удалить все:

  • Числа
  • Пробелы
  • Запятые

Какой самый лучший и простой способ сделать это?

Ответы [ 5 ]

1 голос
/ 25 января 2012

Вы можете сделать это довольно легко, используя preg_replace():

$new_str = preg_replace('/[\d\s,]/', '', $str);

Просмотр учебника по регулярным выражениям может быть хорошей идеей, если выпланируете работать с регулярными выражениями в будущем.

1 голос
/ 25 января 2012

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

$str = preg_replace('/\d|\s|,/', '', $str)
0 голосов
/ 25 января 2012

Наиболее эффективный способ сделать это - использовать str_replace():

$string = 'Hello, World! abc123abc';
$match  = '123456789, '; // All characters that should be removed
$result = str_replace(str_split($match), '', $string);
// $result = 'HelloWorld!abcabc';

Для этого сначала нужно разбить строку '123456789, ' на массив всех символов (array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ',' ' ')) и использовать str_replace(), чтобы заменить каждое из значений массива пустой строкой.

ИМХО, это также самый простой способ сделать это, если вы не знакомы с регулярными выражениями (такими функциями, как preg_replace()), а также быстрее, чем его эквиваленты в регулярных выражениях (2,75 секунды на 1 миллион операций). для str_replace() против 4,15 для preg_replace() на моем компьютере).

0 голосов
/ 25 января 2012
$string = preg_replace('#( pm|[0-9 ]+)#', '', $string);

Редактировать: ОП первоначально попросил удалить фразу "pm" и не включать запятые.

0 голосов
/ 25 января 2012

Вы можете использовать функцию замены регулярного выражения:

$string = preg_replace('#[\d\s,]#', '', $string);

Вы можете найти много информации о синтаксисе регулярных выражений здесь: http://www.php.net/manual/en/reference.pcre.pattern.syntax.php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...