Как удалить не буквенно-цифровые символы в PHP?

Опубликовано: 4 Февраля, 2022

Не буквенно-цифровые символы можно удалить с помощью функции preg_replace (). Эта функция выполняет поиск и замену регулярного выражения. Функция preg_replace () ищет строку, указанную шаблоном, и заменяет шаблон заменой, если найдена.

Примеры:

Ввод:! @ GeeksforGeeks2018?
Выход: GeeksforGeeks2018

Сырьё: Вундеркинды для гиков
Вывод: GeeksForGeeks

Синтаксис:

 int preg_match ($ шаблон, $ replace_string, $ исходная_строка)

Параметр: эта функция принимает три параметра, как указано выше и описано ниже:

  • $ pattern: образец, который ищется в строке. Это должно быть регулярное выражение.
  • $ replace_string: Соответствующий шаблон заменяется строкой replace_string.
  • $ original_string: это исходная строка, в которой выполняется поиск и замена.

Возвращаемое значение:

  • После того, как замена произошла, будет возвращена измененная строка.
  • Если совпадений не найдено, исходная строка остается неизменной.

Метод 1: регулярное выражение '/ [ W] /' соответствует всем не буквенно-цифровым символам и заменяет их на '' (пустая строка).

 $ str = preg_replace ('/ [ W] /', '', $ str);

В регулярном выражении W - это метасимвол, которому предшествует обратная косая черта ( W), которая придает комбинации особое значение. Это означает комбинацию не буквенно-цифровых символов.

Example:

<?php 
  
// string containing non-alphanumeric characters
$str="!@GeeksforGeeks2018?";
  
// preg_replace function to remove the
// non-alphanumeric characters
$str = preg_replace( "/[W]/", "", $str);
  
// print the string
echo($str);
?>
Output:
GeeksforGeeks2018

Метод 2: Регулярное выражение '/ [^ a-z0-9] / i' соответствует всем не буквенно-цифровым символам и заменяет их на '' (пустая строка).

 $ str = preg_replace ('/ [^ a-z0-9] / i', '', $ str);

В регулярном выражении:

  • i: используется для нечувствительности к регистру.
  • az: используется для всех строчных букв, не нужно указывать AZ, потому что i (без учета регистра) уже упоминается в инструкции.
  • 0-9: используется для сопоставления всех цифр.

Example:

<?php 
  
// string containing non-alphanumeric characters
$str="!@GeeksforGeeks2018?";
    
// preg_replace function to remove the 
// non-alphanumeric characters
$str = preg_replace( "/[^a-z0-9]/i", "", $str);
   
// print the string
echo($str);
?>
Output:
GeeksforGeeks2018