Я пытаюсь написать регулярное выражение для распознавания одной строки текста с подчеркиванием (_), распознаваемым как символ продолжения строки. Например, «foo_ \ nbar» следует рассматривать как одну строку, потому что «foo» заканчивается подчеркиванием. Я пытаюсь:
$txt = "foo_\nbar";
print "$&\n" if $txt =~ /.*(_\n.*)*/;
Однако, это только для печати:
foo_
Кажется, это нарушает правило "самого длинного" для регулярных выражений Perl!
Интересно, если я уберу последнюю звездочку (*) в регулярном выражении, т. Е .:
$txt = "foo_\nbar";
print "$&\n" if $txt =~ /.*(_\n.*)/;
it делает печать:
foo_
bar
Но мне нужно, чтобы звезда распознала продолжения "0 или более"!
Что я делаю не так?