linux - 如何在 BASH 中捕获 href 链接

标签 linux string bash centos5

我有一条经过正则表达式处理的输出行,如下所示:

<a href="google.com">"test link"</a><br>

如何将不带引号的 google.com 捕获到变量中?鉴于 url 可能包含许多 '/',例如(以下胡乱编造)

http://www.google.com/search/something/lulz/here2;i=!mfo1iu489fn1o2jlk21m4098mdoi

编辑:在上述情况下,我想要整个 url 字符串,而不仅仅是 www.google.com。

注意:不要为了执行此操作而加载第 3 方库等。

最佳答案

试试这个纯 bash 正则表达式解决方案

shopt -s nocasematch    #Dont care about the character case
text='<a href="hTTtp://www.google.com/search/something/lulz/here2;i=!mfo1iu489fn1o2jlk21m4098mdoi">"test link"</a><br>'
regex='(<a\ +href=\")([^\"]+)(\">)'
[[ $text =~ $regex ]] && echo ${BASH_REMATCH[2]}

关于linux - 如何在 BASH 中捕获 href 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16112191/

相关文章:

linux - git 分支,但更改反射(reflect)在 master 中

php - 如何检查是否可以从字母列表中创建单词?

bash - 如何在 Bash getopts 内置函数中使用长选项?

linux - 基于shell中正则表达式的颜色突出显示输出

bash - 将 AWS CLI 结果存储到 bash 变量

linux - 如何以正确的方式使用 awk 中的命令

linux - cPanel/WHM IP 封禁 - 如何取消 IP 封禁

regex - AWK - 从文件导入 IF 条件

arrays - 在数组中找到可重复的字符串位置

Android- 拆分 URL 字符串