Удаление подстановочных знаков из строки - PullRequest
0 голосов
/ 11 января 2020

Я не силен в регулярных выражениях. В моем адресе у меня есть следующие символы подстановки: !@#$%^&*()_+./\;' "

Я хочу заменить вышеуказанные символы подстановки из адреса на ничто, используя preg_replace.

Так что, если у меня есть такой адрес.

Улица № 453, XYZ - Дорога. Город, штат.

его следует заменить на

Street453RoadCityState

каков соответствующий шаблон для этого.

Спасибо

Ответы [ 3 ]

2 голосов
/ 11 января 2020
$text = "Street # 453, XYZ - Road. / City, State.";
$text = preg_replace('[\W+]', '', $text);
echo($text);

Обновление:

Вы можете просто использовать \ W + (так же, как [^ a-zA-Z0-9_]) или просто использовать [^ a-zA-Z0-9], если хотите также не нужно подчеркивания.

Символ '^' обозначает 'НЕ' в регулярном выражении. Таким образом, все, что не следует за «^», будет заменено.

Вы можете использовать этот веб-сайт для проверки шаблонов регулярных выражений: https://regexr.com/

0 голосов
/ 11 января 2020

Возможно, вы просто ищете

\W+

См. демонстрацию на regex101.com .
Вы исключили XYZ в своем примере также, но это не может быть предназначено.

0 голосов
/ 11 января 2020

Используйте класс символов :

preg_replace('/[!@#$%^&*()_+.\/\\\\;\' "]/', '', $text)

Примечание \ должно быть записано как \\\\, а / должно быть записано как \/.

См. доказательство .

...