Java RegEx не работает должным образом - PullRequest
1 голос
/ 24 февраля 2012

Хотите знать, если кто-то может сказать мне, почему это регулярное выражение не работает.

Выражение -> ^[A-Za-z0-9$&!#-_?:;\"']+$

Проблема в том, что оно сопоставляется с символами, которых нет в наборе.Например, слово match правильно соответствует, а слово match~ не соответствует, но match@ и match! неправильно соответствуют.

Я использую java для сопоставления, и сопоставление должно быть довольно простым с кодом ниже:

        RE re = new RE(expression);
        return re.match(value);

Я знаю, что, возможно, что-то нелепо простое, что я упускаю,но если у кого-то есть какие-либо мысли по этому поводу, я буду очень признателен!

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Я подозреваю, что это #-_, которое действует. Выйдите из - и посмотрите, поможет ли это.

Новое выражение будет ^[A-Za-z0-9$&!#\-_?:;\"']+$

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

Проблема заключается в дефисе - в вашем наборе символов.Вы принимаете символы от # до _.

Измените его на ^[-A-Za-z0-9$&!#_?:;\"']+$ или выберите -.

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