Регулярное выражение помощь не a-z или 0-9
Мне нужно регулярное выражение, чтобы найти все символы, которые не являются a-z или 0-9
Я не знаю синтаксиса для оператора NOT в регулярном выражении.
Я хочу, чтобы регулярное выражение не было [a-z, A-Z, 0-9].
Заранее спасибо!
5 ответов:
Это ^. Ваше регулярное выражение должно использовать
[^a-zA-Z0-9]
. Будьте осторожны: этот символьный класс может иметь неожиданное поведение с не-ascii локалями. Например, это будет соответствовать é.Отредактировано
Если регексы совместимы с perl (PCRE), вы можете использовать
\s
для сопоставления всех пробелов. Она расширяется и включает пробелы и другие символы пробела. Если они совместимы с posix, используйте класс символов[:space:]
(например:[^a-zA-Z0-9[:space:]]
). Я бы рекомендовал использовать[:alnum:]
вместоa-zA-Z0-9
.Если вы хотите соответствовать конец строки, вы должны включить
$
в конце. Включение многострочного режима происходит только в том случае, если совпадение должно распространяться на несколько строк, и это снижает производительность для больших файлов, так как больше должно быть считано в память.Почему бы вам не включить копию примера ввода, текст, который вы хотите сопоставить, и программу, которую вы используете для этого?
Это довольно просто; вы просто добавляете
^
в начале набора символов, чтобы отменить этот набор символов.Например, следующий шаблон будет соответствовать всему, что не входит в этот набор символов - то есть не строчному символу ASCII или цифре:
[^a-z0-9]
В качестве дополнительной заметки, некоторые из наиболее полезных ресурсов регулярных выражений, которые я нашел, былиЭтот сайт иэта шпаргалка (c# specific) .