我正在尝试编写一个正则表达式来识别单行文本,并将下划线(_)识别为行连续字符。例如,“foo_ \ nbar”应该被视为单行,因为“foo”以下划线结尾。我想:这是否违反了“最左边最长”的原则?
$txt = "foo_\nbar";
print "$&\n" if $txt =~ /.*(_\n.*)*/;
然而,这仅打印:
foo_
这似乎违背了Perl的正则表达式的 “最左边最长” 的规则!
有趣的是,如果我删除了正则表达式的最后一个星号(*),即:
$txt = "foo_\nbar";
print "$&\n" if $txt =~ /.*(_\n.*)/;
它确实打印:
foo_
bar
但我需要的明星认识到“0或更多“延续!
我在做什么错?
这是什么,你试图用这个正则表达式来实现呢?你想用它做什么? – Zaid 2010-06-27 14:14:02
“认出单行文字,用下划线(_)识别为行续字符” – JoelFan 2010-06-27 14:15:39