我有一个 Perl 替换,它将超链接转换为小写:
's/(?<=<a href=")([^"]+)(?=")/\L$1/g'
我希望替换忽略以散列开头的任何链接,例如我希望它将路径更改<a href="FooBar/Foo.bar">Foo Bar</a>
为小写但如果遇到<a href="#Bar">Bar</a>
.
嵌套前瞻以指示它跳过这些链接对我来说无法正常工作。这是我写的单行:
perl -pi -e 's/(?<=<a href=" (?! (?<=<a href="#) ) )([^"]+)(?=")/\L$1/g' *;
任何人都可以向我暗示我在这个替换中出了什么问题吗?它执行得很好,但没有做任何事情。