Сопоставитель шаблонов Java — дополнительная группа захватаJAVA

Программисты JAVA общаются здесь
Anonymous
Сопоставитель шаблонов Java — дополнительная группа захвата

Сообщение Anonymous »

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

Код: Выделить всё

query: select * from People
query: select * from People exclude addresses
query: select * from People include department
У меня есть запрос regEx[:\/]?(.*)((exclude|include)(.*))?, который СООТВЕТСТВУЕТ всем трем сценариям,
но я теряю группы (2), такие как: исключить адреса, включить отделы, но мне придется использовать дополнительные операции с подстроками, чтобы извлечь эту информацию из исходной строки.
С query[:\/]?(.*)((exclude|include)(.*)) (без знака вопроса в конце)
Я получаю:
  • группа 1 — ТОЛЬКО запрос
  • группа 2 (исключения/включения)
Но это не так захватывать случаи, когда я получаю только входные данные запроса.
Как обновить RegEx, чтобы у меня было MATCH во всех трех случаях с дополнительной группой сопоставления?
т.е. groupCount == 3 У меня есть включения/исключения, а groupCount==2 указывает, что у меня есть только простой запрос
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/797 ... ring-group

Вернуться в «JAVA»