grep从html中提取出正则表达式href和rel

时间:2017-08-12 18:39:40

标签: html

我正在处理的html看起来很像这样

<a class="title may-blank" data-event-action="title" href="/r/gaming/comments/6t8dj0/we_can_play_singleplayer_games_off_the_internet/" tabindex="1" data-href-url="/r/gaming/comments/6t8dj0/we_can_play_singleplayer_games_off_the_internet/" data-inbound-url="/r/gaming/comments/6t8dj0/we_can_play_singleplayer_games_off_the_internet/?utm_content=title&amp;utm_medium=hot&amp;utm_source=reddit&amp;utm_name=frontpage" rel="">We can play singleplayer games OFF THE INTERNET? Are they seriously that out of touch to advertise this?</a>

像这样的多行

我只想要href="http://xxxxxxxx"rel="">yyyyyyyyyy中引号之间的内容,其余内容是不必要的。

我喜欢他们像这样输出,上面每个块的新行

<a href="http://xxxxxxxx" rel="">yyyyyyyyyy</a>

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

所以这是一个10s的解决方案。它可能有点脆,但假设字符串在一个名为html.txt

的文件中应该可以工作

cat html.txt | sed 's/class.*href/href/' | sed 's/data-in.*rel=/rel=/'

Ĵ

答案 1 :(得分:0)

您的html示例将我引导至以下模式以获取所需的值:

<a class=\"(.*) href=\"/(.*)\" tabindex=(.*) rel=\"\">(.*)</a>

使用以下模式替换匹配项:

<a href="http://$2" rel="">$4</a>

你可以在regexe尝试一下,就像我预期的那样。