Regex соответствует всему, кроме трех последовательных двойных кавычек - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь сопоставить все, кроме

"""

в регулярных выражениях.Моя попытка включает в себя:

[^\"]{3}

Это включает в себя только все, кроме двойной кавычки.Я хочу также включить одну двойную кавычку и две двойные кавычки, чтобы, например, вся эта строка соответствовала:

This example "" would match " all the way.

Я пытаюсь заставить эту работу работать с помощью JFlex.

1 Ответ

0 голосов
/ 04 октября 2018

Решение состоит в том, чтобы использовать несколько выражений регулярных выражений:

[\"][\"][\"]   -> case (1) for three consecutive double quotes.
[^\"]+         -> case (2) for anything except a double quote
[\"]           -> case (3) grab one double quote

Строка с двумя двойными кавычками будет затем «сожрена» по одной за раз.Строка с тремя двойными кавычками выберет случай 1 из-за максимального правила munch и приоритета случая 1 над случаем 3.

...