gpt4 book ai didi

regex - 简单的 Grep 不匹配问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:31:29 26 4
gpt4 key购买 nike

我正在使用 Ubuntu 10.10 并使用 Grep 处理一些 HTML 文件。

这是 HTML 片段:

<a href="video.php?video=one-hd.mov"><img src="/1.jpg"><a href="video.php?video=normal.mov"><img src="/2.jpg"><a href="video.php?video=another-hd.mov">

我想提取 one-hd.movanother-hd.mov 但忽略 normal.mov

这是我的代码:

example='<a href="video.php?video=one-hd.mov"><img src="/1.jpg"><a href="video.php?video=normal.mov"><img src="/2.jpg"><a href="video.php?video=another-hd.mov">'
echo $example | grep -Po '(?<=video.php\?video=).*?(?=-hd.mov">)'

结果是:

one
normal.mov"><img src="/2.jpg"><a href="video.php?video=another

但是我想要

one
another

那里不匹配。

这是不是因为所谓的贪婪正则表达式?

我正在使用 GREP,但欢迎使用任何命令行 bash 工具来解决这个问题,例如 sed 等。

非常感谢。

最佳答案

您想对 grep 使用 Perl 正则表达式 - 为什么不直接使用 perl?

echo "$example" | perl -nle 'm/.*?video.php\?video=([^"]+)">.*video.php\?video=([^"]+)".*/; print "=$1=$2="'

将打印

=one-hd.mov=another-hd.mov=

关于regex - 简单的 Grep 不匹配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6643565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com