2010-06-22 2 views
2

Как создать шаблон регулярного выражения для использования с функцией PHP preg_replace, которая удаляет все символы, которые не соответствуют определенному шаблону. Например:Regex Whole Input Matches Pattern

[a-zA-Z0-9] 

ответ

9

вы можете инвертировать набор символов с помощью ^:

[^a-zA-Z0-9]

^ только отрицает существующий набор символов [...] он находится, и она применяется только тогда, когда это первый символ внутри набора. Вы можете прочитать больше о инверсный наборов символов here

Итак, в конце концов:

preg_replace('/[^a-zA-Z0-9]/', '', $input); 

Edit: Как отмечалось в комментариях ниже, вы можете также добавить + квантор так последовательных недопустимые символы будут заменяется на 1 матч preg_replace 's итерация:

preg_replace('/[^a-zA-Z0-9]+/', '', $input); 
+0

Вы можете добавить квантор для effi фективности. – SilentGhost

+0

@SilentGhost - правда, спасибо. Ред. – Matt

+0

Спасибо за это. Все работают очень красиво! – jSherz