You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从YouTube订阅页面HTML源码中提取/user/CHANNELNAME格式的频道路径

如何从YouTube订阅页面HTML源码中提取/user/CHANNELNAME格式的频道路径

嘿,我来帮你搞定这个grep贪婪匹配的坑!你遇到的问题完全是因为正则里的.*是“贪婪”的——它会尽可能匹配最多的内容,所以才会把后面一大串字符都带进来。咱们换两种思路就能轻松解决:

方法一:用排除型字符类(通用所有grep版本)

这是最稳妥的办法,直接限定匹配的字符范围,不让它“贪多”:

grep -o '/user/[^"]*' source

解释一下:[^"]的意思是匹配任何不是双引号的字符,后面的*表示可以匹配零个或多个这类字符。这样grep会从/user/开始,一直匹配到第一个双引号就立刻停止,正好精准提取出你要的/user/CHANNELNAME。

方法二:用非贪婪匹配(适合支持Perl正则的grep)

如果你的系统用的是GNU grep(大部分Linux系统默认都是),可以启用Perl兼容正则来实现非贪婪匹配:

grep -oP '/user/.*?(?=")' source

这里的-P参数是开启Perl正则支持,.*?是.*的非贪婪版本——它会尽可能少地匹配字符,加上(?=")这个正向预查(意思是“后面必须跟着双引号,但不把双引号包含进匹配结果”),就能直接拿到不带引号的目标路径。

举个实际例子,针对你给出的那段源码:

"url":"/user/CHANNELNAME","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"

用上面任意一个命令,都会输出:/user/CHANNELNAME,完全符合你的需求!

备注:内容来源于stack exchange,提问作者Broadsworde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:52:40