Я довольно новичок в PHP, и я заметил, что существует много разных способов обработки регулярных выражений.
Это то, что я сейчас использую:
$replace = array(" ",".",",","'","@"); $newString = str_replace($replace,"_",$join); $join = "the original string i'm parsing through";
Я хочу удалить все, что не является az, AZ или 0-9. Я ищу обратную функцию выше. Псевдокодным способом его записи было бы
Если символы в $ join не равны az, AZ, 0-9, то измените символы в
$join
на"_"
$newString = preg_replace('/[^a-z0-9]/i', '_', $join);
Это должно сделать трюк.
Я не даю вам ответа, но этот урок стоит 10 минут.
Ссылка на регулярные выражения в PHP
Регулярное выражение для всего, что не является az, AZ, 0-9, равно:
preg_replace('/[^a-zA-Z0-9]/', "_", $join);
Это известно как класс отрицательных символов
Самый простой способ:
preg_replace('/\W/', '_', $join);
\ W – группа символов без слов. Символом слова является az, AZ, 0-9 и _. \ W соответствует всем, что ранее не упоминалось *.
Изменить: preg использует регулярные выражения Perl, задокументированные в документе perlman perlre .
* Изменить 2: Это предполагает C или один из английских мест. Другие локали могут иметь буквы с акцентом в классе символов слова. В юникодских локалях будут учитываться символы, расположенные ниже кодовой точки 128, как символы.