Регулярное выражение помощь не a-z или 0-9


Мне нужно регулярное выражение, чтобы найти все символы, которые не являются a-z или 0-9

Я не знаю синтаксиса для оператора NOT в регулярном выражении.

Я хочу, чтобы регулярное выражение не было [a-z, A-Z, 0-9].

Заранее спасибо!

5 6

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) .

Поместите в ^ в начале выражения класса символов: [^a-z0-9]

At start [^a-zA-Z0-9]

for condition;
pre_match();
pre_replace();
ergi();

Попробуйте это

Вы также можете использовать \W это сокращение для несловного символа (равно [^a-zA-Z0-9_])