我想写一个 grep 命令来提取 h1 标签之间的内容,而不考虑类和其他属性
我试过了
grep -o '>.*</h1>' Email.txt
但是只给了三个元素
最佳答案
使用 GNU grep
, 你可以使用
grep -oP '<h1(?:\s[^>]*)?>\K.*?(?=</h1>)' Email.txt
-P
选项将启用 PCRE 正则表达式引擎并且模式将匹配
-
<h1
-<h1
字符串 -
(?:\s[^>]*)?
- 一个可选的非捕获组,匹配 1 次或 0 次出现的空格 (\s
),后跟除>
以外的 0+ 个字符 -
>
- 一个>
字符 -
\K
- 匹配重置运算符,丢弃匹配内存缓冲区中到目前为止匹配的文本 -
.*?
- 除换行字符外的任何 0+ 个字符,尽可能少 -
(?=</h1>)
- 与紧跟在</h1>
之后的位置相匹配的正面前瞻子串。
关于linux - 如何使用grep命令提取html中标签之间的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61425604/