我希望使用grep或vim中的regex从我的论坛中删除大量的垃圾邮件URL链接,然后使用find / replace命令。我正在寻找一种方法来选择那些不好的URL。
所有网址都不同,前面是\n________\n
。 (这是8个下划线)
以下是其中一个网址的示例:
\n________\n[URL=http://boxvaporizers.com]Box Vaporizers[/URL]
所以基本上我试图使用\ n ...和[/ URL]作为边界来选择中间的一切。我想出的是:
[\\]n[_][_][_][_][_][_][_][_][\\]n.*\[\/URL\]]
使用它不能正确关闭搜索并选择几乎所有内容。我非常陌生,并欣赏任何见解。感谢。
答案 0 :(得分:1)
假设GNU ERE,这应该有效:
\\n_{8}\\n\s\[URL=(.*)].*\[/URL]
RegexBuddy似乎同意我的观点:
那就是说,
> grep -E \\n_{8}\\n\s\[URL=(.*)].*\[/URL] test.txt
在我的系统上不起作用(带有GNU grep 2.6.3的Cygwin; test.txt
的内容显示在上面的屏幕截图中。
答案 1 :(得分:0)
如果你想让sed有机会完成这项工作:
sed 's/^.*\(\[URL.*\)$/\1/' file.txt
:s/^.*\(\[URL.*\)$/\1/
。对于包含以下内容的file.txt:
\ n _ _ \ n [URL = http://boxvaporizers.com] Box Vaporizers [/ URL]
它产生:
[URL=http://boxvaporizers.com]Box Vaporizers[/URL]
答案 2 :(得分:0)
在Vim中,这应删除与模式匹配的所有行:
:g/\\n\%(\\_\)\{8}\\n \[URL=.\{-}\/URL\]/d
该模式与字面上的示例文本匹配,全部在一行中。
答案 3 :(得分:0)
我实际上可以使用以下方法在Microsoft Word中执行此操作:
[\\]n_{8}[\\]n?*/URL\]
感谢您的所有输入,没有帮助就无法完成!