С набором строк следующим образом:
string s1 = " Identifier1 = Value1 ## Comment";
string s2 = " Something = SomeData";
string s3 = " Name = information\\t\\t\\t## More comments!";
string s4 = " Nam2 = information";
Мне нужен шаблон регулярного выражения, который будет собирать всю информацию в строке после знака равенства (=) вплоть до концастрока ИЛИ ## маркер комментария, но НЕ захватывайте ни один из них.
Дайте мне (соответственно):
" Value1 "
" SomeData"
" information\\t\\t\\t"
" information"
Я до сих пор придумал это: (?<=[=]).+(?=(?>##|$))
Это работает, поскольку ему удается захватить весь текст после знака = до конца строки, но оно никогда не работает, когда есть маркер комментария: ##, поскольку он все еще захватывает до концаСтрока, вместо остановки на ##.
... и если я изменю шаблон на: (?<=[=]).+(?=##))
Тогда он только работает на строках с комментариеммаркеры (и останавливается перед ними по желанию).
Так, что я делаю неправильно / отсутствует, чтобы заставить его закончить захват либо непосредственно перед ## ИЛИ в EOL?Кроме того, я не могу использовать явные или неявные группы захвата, так как эти шаблоны передаются в синтаксический анализатор, который превращает их в группы без захвата при обработке.
Я никогда не использовал шаблоны прогнозирования / отставанияпока только последние несколько дней, и этот материал не ломает мне голову ...