我有一堆正在解析的html,如果它们包含某些文本,则需要删除某些<a>
标记。通常,我会使用Goquery,但是我要搜索的文本通常不在html标签本身之内。例如,此html:
<html><body>
This is the start.
<a href="http://example.com/path">We don't want to match this text.</a>
<a href="http://www.example.com/another/path" style="font-family:Arial, Helvetica, 'sans-serif'; color:#838383;font-size:12px; line-height:14px"></a> match this text.<a href="blah">We also don't want to match this text</a>
</body></html>
我正在使用此正则表达式,但失败了并且与我不想匹配的文本匹配:
(?is)<a[^>]+href=["'](?P<link>.*?)["']*.?> match this text\.
https://regex101.com/r/iEXpqc/1
最佳答案
xmlstarlet ed -d '//a[contains(text(), "want to match")]' file.html
输出量
<?xml version="1.0"?>
<html>
<body>
This is the start.
<a href="http://www.example.com/another/path" style="font-family:Arial, Helvetica, 'sans-serif'; color:#838383;font-size:12px; line-height:14px"/> match this text.
</body>
</html>
注意
-L
开关关于html - 在Go中匹配html标记之外的html文本的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59339541/