Исключение шаблонов при использовании Lookahead Regex - PullRequest
0 голосов
/ 10 марта 2019

У меня есть следующее регулярное выражение для проверки условий в строке, я написал его в онлайн-валидаторе регулярных выражений, но когда я использую его в своем коде Java, я получаю исключение:

"(^([a-z]{1,6})(?(?=(_))(([_])([0-9]{0,4})?)|[a-zA-Z]{0,})[a-zA-Z]{0,}?@sample[.]com)"

Исключением является исключение в потоке "main" java.util.regex.PatternSyntaxException: неизвестный встроенный модификатор рядом с индексом 16 (^ ([AZ] {1,6}) ((= ()) (([]) ([0-9] {0,4})) |?? [A-Za -Z] {0,}) [A-Za-Z] {0,}? @ образец [.] ком)

Буду очень признателен за любую помощь.

1 Ответ

1 голос
/ 10 марта 2019
(^([a-z]{1,6})(?(?=(_))(([_])([0-9]{0,4})?)|[a-zA-Z]{0,})[a-zA-Z]{0,}?@sample[.]com)
               |  
               ^ --- if clause is not supported in JAVA

Ваша проблема из-за этого (?(?=).

Если вы предполагали, что это не группа захвата, то она должна быть (?:(?=)

Java не поддерживает если оговорка (?(?=)).PCRE поддерживает это.

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