我正在尝试理解以下正则表达式:
具有:
SRC=array.c builtin.c eval.c field.c gawkmisc.c io.c main.c \
missing.c msg.c node.c re.c version.c
作为多行文本,以下正则表达式无法匹配:
~$ perl -e '
my $var = "SRC=array.c builtin.c eval.c field.c gawkmisc.c io.c main.c \
missing.c msg.c node.c re.c version.c";
$var =~ /^\w+=(.*(\\\n.*))/;
print "$1\n";
但我不确定为什么。
我的意思是.*
将匹配到行尾(\n
)。然后由于.
无法匹配行尾,匹配失败。那么既然*
是可选的,那么正则表达式引擎不应该回溯并释放\
并再次尝试匹配吗?
这似乎不会发生,因为反向引用是空的。
有人可以帮我理解这一点吗?