Regex capture and replace %20 after last forward slash
我有一个 tsv 文件,里面有很多 HTML。
我需要在非 .jpg 链接的 href 属性的最后一个正斜杠之后替换
我正在命令行上使用 Perl,我需要正则表达式的帮助。
我尝试了一些正则表达式,这是在现场测试中(下面的链接):
1
|
]*href="([^"]+(%20)+)[^//.jpg][^///]"[^>]?>
|
它只匹配一个
这是一个带有 tsv 样本的实时测试。
我本可以:
1
|
text
|
我必须匹配最后一个正斜杠之后的所有
或:
1
|
<img border="0" src="http://example.com/path/to-some-folder/another%20folder/one%20more520folder/uploads/2012/02/some%20folder/another%20folder/09%20antichi%20egizi%20-%20Tomba%20di%20Tutankhamen%20ante.jpg" width="80" height="92" alt="09 antichi egizi – Tomba di Tutankhamen" />
|
我不能匹配 .jpg 的 href 属性,所以上面的最后一个例子需要保持不变。
我也试过这个匹配所有预期的
1
|
]*href="([^"]+)[^//.jpg][^///]"[^>]?>
|
https://regex101.com/r/cS3iB6/2
为了匹配某些分隔符内的
You can use
//G to specify the position just after the previous match.
你可以使用的正则表达式是
1
|
()[^///"]*">)
|
替换为
1
|
//1//2–
|
这是我的演示
在类似 Perl 的符号中,它看起来像
1
|
s/()[^///"]*">)///1//2–/g
|
replace %20 after last forward slash of href attributes of non .jpg links
您可以使用以下内容进行匹配:
1
|
%20(?=(?:(?!//.jpg">)[^>///])*>)
|
并替换为
见演示
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/270652.html