grep正则表达式如何进行最短匹配?

发布于 2022-09-02 14:02:37 字数 1019 浏览 22 评论 0

需求是匹配网页里面的ed2k链接我写的grep正则如下

grep  -o 'ed2k.*|\/' 

待匹配的网页代码中有时会含有两个链接,两个a标签竟然不换行。。。

<a href="ed2k://|file|%E7%A1%85%E8%B0%B7.Silicon.Valley.S01E01.%E4%B8%AD%E8%8B%B1%E5%AD%97%E5%B9%95.HDTVrip.1024X576.mkv|348759100|04dc44e4978ea2d4dc9bf41b08829a3e|h=rfe5smulijxlmz7mgtpmn2bt3vmofk56|/">第1集.HR-HDTV.1024.mkv</a> ——<a href="ed2k://|file|silicon.valley.s01e01.720p.hdtv.x264-killers.mkv|843706966|3B4B08BD9C960B5B8F2372158F84B1AE|h=36632AROF43T63NSXFLIGSYEB4PNDEFN|/">720P</a>

所以我匹配成了这个样子。。。

ed2k://|file|%E7%A1%85%E8%B0%B7.Silicon.Valley.S01E01.%E4%B8%AD%E8%8B%B1%E5%AD%97%E5%B9%95.HDTVrip.1024X576.mkv|348759100|04dc44e4978ea2d4dc9bf41b08829a3e|h=rfe5smulijxlmz7mgtpmn2bt3vmofk56|/">第1集.HR-HDTV.1024.mkv</a> ——<a href="ed2k://|file|silicon.valley.s01e01.720p.hdtv.x264-killers.mkv|843706966|3B4B08BD9C960B5B8F2372158F84B1AE|h=36632AROF43T63NSXFLIGSYEB4PNDEFN|/

请问:grep正则表达式如何进行最短匹配?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

Hello爱情风 2022-09-09 14:02:37

这个可以匹配出来 grep -o "ed2k[^\"]*"

[root@localhost oldlog.md]# echo '你的地址' | grep -o "ed2k[^\"]*"
ed2k://|file|%E7%A1%85%E8%B0%B7.Silicon.Valley.S01E01.%E4%B8%AD%E8%8B%B1%E5%AD%97%E5%B9%95.HDTVrip.1024X576.mkv|348759100|04dc44e4978ea2d4dc9bf41b08829a3e|h=rfe5smulijxlmz7mgtpmn2bt3vmofk56|/
ed2k://|file|silicon.valley.s01e01.720p.hdtv.x264-killers.mkv|843706966|3B4B08BD9C960B5B8F2372158F84B1AE|h=36632AROF43T63NSXFLIGSYEB4PNDEFN|/
山田美奈子 2022-09-09 14:02:37

建议通过一些html的parser把a标签单独提取出来进行匹配,可以避免一行出现多个a的问题

盗琴音 2022-09-09 14:02:37

By default grep doesn't support non-greedy modifiers, but you can use grep -P to use the Perl syntax.

How to do a non-greedy match in grep?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文