У меня возникли проблемы с вычислением 2 регулярных выражений в одном (используется для работы с файлами .ini)
У меня есть этот (предлагаю вам использовать rubular с этими примерами, чтобы понять)
^(?<key>[^=;\r\n]+)=((?<value>\"*.*;*.*\"[^;\r\n]*);?(?<comment>.*)[^\r\n]*)
соответствовать:
- Это="не;комментарий"
- This="isa";комментарий
- This="isa;особый";случай
А у меня вот такой:
^(?<key>[^=;\r\n]+)=(?<value>[^;\r\n]*);?(?<comment>[^\r\n]*)
соответствовать
- Это=простой случай
- Это=просто;комментарий
И я пытаюсь объединить 2 регулярных выражения, к сожалению, мне не удается сказать: «Если моя группа значений не начинается с \», используйте второе, если не используйте первое».
Прямо сейчас у меня есть это:
^(?<key>[^=;\r\n]+)=(((?<value>\"*.*;*.*\"[^;\r\n]*);?(?<comment>.*)[^\r\n]*)|(?<value>[^;\r\n]*);?(?<comment>[^\r\n]*))
Но он создает еще 2 безымянных раздела для простого случая без кавычек. Я подумал, что, возможно, добавив «первый элемент группы значений для простого случая не должен начинаться с \». Но мне это не удалось.
PS: Я предлагаю вам использовать rubular, чтобы лучше понять мою проблему. Извините, если я был недостаточно ясен