大家好,我在 Perl 中有这个正则表达式,但我不理解它。
s/\w+$/($`!)$&/;
原始字符串为
"huge dinosaur"
执行正则表达式后,字符串现在变为:
"huge (huge !)dinosaur"
我不太理解那是怎么发生的。而且我也不明白那个&符号在那里做什么。我明白$`的意思,但是为什么它在那里呢?从我所知道的来看,$`取的是匹配前的值,因为在上述正则表达式之前没有匹配表达式,那么可能就是空的。
如果有人可以给我提供一些关于Perl正则表达式的非常有用的教程链接,我将不胜感激。
谢谢
编辑:现在我明白了&符号的含义,它保存了匹配,而$`保存了匹配之前的值。现在我又不明白的是这整个部分:
($`!)$&
这部分是如何变成的?
(huge !)
perlvar
,然后查找$&
。这是一个粗略的开始。 - squiguy$
(24)和&
(26)的十六进制代码,您可以直接对它们进行URL转义。(仅适用于perlvar页面) - Brad Gilbert