Как удалить все символы, кроме буквенно-цифровых символов, подчеркивания и тире? - PullRequest
6 голосов
/ 19 мая 2011

Я не эксперт по регулярным выражениям :( Я пытаюсь удалить все символы из строки, кроме буквенно-цифровых символов, подчеркивания и тире. Это правильный синтаксис?:

preg_replace("/[^a-z0-9_-]+/i", "", $string);

Ответы [ 3 ]

19 голосов
/ 19 мая 2011

Да, но его можно немного оптимизировать:

preg_replace('/[^\w-]/', '', $string);

\w соответствует буквенно-цифровым символам и подчеркиванию. Это имеет дополнительное преимущество, заключающееся в том, что допускаются символы с акцентом, если позволяет ваш языковой стандарт.

1 голос
/ 19 мая 2011

То, что у вас есть, похоже, будет работать. Вы можете добавить пробелы, поскольку они не являются буквенно-цифровыми символами:

preg_replace("/[^a-z0-9_-\s]+/i", "", $string);
0 голосов
/ 19 мая 2011
...