Regex 字符串前的grep文本-正则表达式

Regex 字符串前的grep文本-正则表达式,regex,bash,grep,Regex,Bash,Grep,我必须使用bash(仅限)从下面的输入html文本中提取几个字段 HTML输入 <a href="/something/somemorething/page?id=1234425">SOMETEXT</a> 这给了我正确的结果 grep -o 'id=[0-9]*' index.html | head -n 5 但我不确定在下一次之前应该使用哪种正则表达式来抓取文本 提前感谢。您的OP中的正则表达式(“id=[0-9]*”)看起来在您的情况下有效,但更好的方法是对锚标

我必须使用bash(仅限)从下面的输入html文本中提取几个字段

HTML输入

<a href="/something/somemorething/page?id=1234425">SOMETEXT</a>
这给了我正确的结果

grep -o 'id=[0-9]*' index.html | head -n 5
但我不确定在下一次
之前应该使用哪种正则表达式来抓取文本


提前感谢。

您的OP中的正则表达式(
“id=[0-9]*”
)看起来在您的情况下有效,但更好的方法是对锚标记本身进行磨练

下面是一个用于提取id值的正则表达式:

<a.*?id=(\d.*?)">
(*)

(?)*?(?=这对我个人来说很有用!!但是如果有组合的话那就太好了?-我对regex很幼稚,所以问题可能是错误的。试试这个:
grep-E'REGEX1 | REGEX2'index.html
…你是在寻找两个条件的匹配,还是仅仅一个或另一个?基本上我想要提取两个字段。它应该是可用的I’’好吧,我现在就这么想。
<a.*?id=(\d.*?)">
<a.*?">(.*?)<\/a>
(?<=>).*?(?=<)