我运行一个简单的程序:
my $_ = '/login/.htaccess/.htdf';
s!(/\.ht.*?)$!/!;
print "$_ $1";
输出
/login/ /.htaccess/.htdf
我希望这个正则表达式只匹配 /.htdf
。
例子2:
my $_ = 'abcbc';
m/(b.*?)$/;
print "$_ $1\n";
输出
abcbc bcbc
我期望的是 bc
。
为什么 *?
仍然贪婪匹配?(我想要最小匹配。)
.*?$
匹配余下的行。 - user557597\K
在s{\K/\.ht[^/]*$}{}
中是无用的。如果您不想要尾随的/
,请使用s{/\.ht[^/]*$}{}
。 - ikegami