у меня возникают проблемы, чтобы вычислить 2 регулярное выражение в одном (используется для борьбы с INI-файлами)Regex Группа не начиная с
У меня есть этот (я предлагаю вам использовать Rubular примеры тезисов, чтобы понять)
^(?<key>[^=;\r\n]+)=((?<value>\"*.*;*.*\"[^;\r\n]*);?(?<comment>.*)[^\r\n]*)
соответствовать:
- Это = "IsNot; acomment"
- Это = "Isa"; комментарий
- Это = "иша, специальный", корпус
И у меня это один:
^(?<key>[^=;\r\n]+)=(?<value>[^;\r\n]*);?(?<comment>[^\r\n]*)
соответствовать
- Это = isasimplecase
- Это = isasimple; комментарий
И я пытаюсь объединить 2 регулярных выражения, к сожалению, я не управляю e сказать «Если моя группа значений не начинается с \« используйте вторую, если не использовать первую ».
Прямо сейчас у меня есть это:
^(?<key>[^=;\r\n]+)=(((?<value>\"*.*;*.*\"[^;\r\n]*);?(?<comment>.*)[^\r\n]*)|(?<value>[^;\r\n]*);?(?<comment>[^\r\n]*))
Но это создает больше 2 секции неназванный для простого случая без цитировал. Я думал, что, возможно, добавив «первый элемент группы значений для простого случая не должен начинаться с \». Но мне это не удалось.
PS: Я предлагаю вам использовать rubular, чтобы лучше понять мою проблему. Извините, если я не был достаточно ясен
Благодарим вас, но это не сработает с: This = "isa; special"; case. Для этого у нас должно быть: Это «isa; special» В этом случае у меня так много проблем. Если есть ";" внутри цитаты он не должен быть обнаружен как комментарий. –
naurel
проверить мое обновление. –
Спасибо! Идеально.Можете ли вы объяснить мне, как вы это сделали, чтобы создать регулярное выражение? Я хотел бы научиться думать, как строить такие вещи. – naurel