Можно ли с помощью регулярного выражения (в c # .net) проверить предыдущую строку строки?
Например, мне нужно выбрать строки, в которых предыдущая строка не является серией звездочек (предыдущая строка: ******)
******
(?m)^(?<!^\*+\r?\n).+
(?m) включает многострочный режим, поэтому ^ может соответствовать началу строки. Взгляд назад проверяет предыдущую строку; если это удается (то есть, не видит строку звездочек), .+ потребляет текущую строку.
(?m)
^
.+
Вы можете использовать RegexOptions.MultiLine , а затем сопоставить что-то вроде следующего:
(?<!^\*+$\r?\n?.*)foo
Это соответствует "foo", только если предыдущая строка не состоит из звездочек.