Java Regex - пытаюсь создать определенный шаблон, но я не совсем уверен, что делать - PullRequest
0 голосов
/ 09 февраля 2012

В моем Java-приложении я пытаюсь указать шаблон, который будет соответствовать всему, что не состоит из заглавных букв, строчных букв или тире. Поэтому я хочу, чтобы он соответствовал всему, что не содержит A-Z, a-z или '-'. Я новичок в использовании регулярных выражений, поэтому я просто хотел посмотреть, был ли я хотя бы близок к получению этого права. Вот что у меня есть:

Pattern.compile("[^A-Z]&&[^a-z]&&[^\\-]");

Я даже не уверен, нужны ли мне экранирующие символы для черты или, если я это сделаю, должно ли это быть два обратных слэша вместо одного Я также не уверен насчет формата в целом. Спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 09 февраля 2012

Построение ответа @ Джо:

Pattern.compile("[^A-Za-z\\-]");

Но вам нужно использовать двойную обратную реакцию, так как вам нужно избежать \, который выходит из -

1 голос
/ 09 февраля 2012

Вам не нужно говорить «И НЕ», вы можете просто объединить их все вместе:

Pattern.compile("[^A-Za-z\-]");

Что касается экранирования, то одна обратная косая черта \ экранирует персонажа сразу после него.поэтому \- дает вам текстовый - символ, а \\ дает вам текстовый \ символ.В вашем исходном сообщении \\- экранирует обратную косую черту, но не дефис, поэтому вы в конечном итоге найдете "не обратную косую черту или дефис".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...