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

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

Сообщение Anonymous »

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

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

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

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

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