Интересно, возможно ли это с помощью регулярного выражения в C #:
Я бы хотел сопоставить слова "FOO" и "BAR" в многострочном тексте, но только если эти два слованачинаться в одном и том же столбце на последовательных строках.
Другими словами, это должно совпадать, поскольку оба слова начинаются в одном и том же столбце:
dha skj dh FOO dd fsdf sdf \n
xdsjk fh f BAR 98kf hkjdsf \n
Это также должно совпадать, даже если есть также"BAR" в неправильном месте:
dha sk jdh FOO dd fsd fs df \n
xd BAR fhf BAR 98 kfhk jdsf \n
Это должно не совпадать, потому что слова начинаются в разных столбцах:
dhas kjdh FOO dd fsdfsd ddef \n
xdB2e ARfhf BAR 98kfh kj dsf \n
РЕДАКТИРОВАТЬ
Мне удалось получить совпадения в случае одинаковых префиксов для обоих слов, используя обратную ссылку, подобную этой:
var pattern = @"(?m)^(.*?)(FOO).*$\n^\1(BAR)" ;
var result = Regex.Match( "xxxFOOyyyy\nxxxBARzzz", pattern ) ;
Но что я действительно хочу, так это обратная ссылка на длина первой группы захвата.