linux - 如何使用grep命令提取html中标签之间的内容

标签 linux ubuntu sed grep computer-forensics

我想写一个 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/

相关文章:

tomcat - Ubuntu Tomcat7 java.lang.ClassNotFoundException : org. apache.tomcat.dbcp.dbcp.BasicDataSourceFactory

eclipse - 调试 eclipse IDE 本身

awk - 使用 Sed/Awk 提取该行的前三个唯一实例

bash - 如何使用 sed 从 awk 输入变量中搜索和替换 html 代码字符串

linux - Makefile:3: *** 缺少分隔符。停止

linux - 使用 Yocto 配方构建内核时如何启用 tc 命令

linux - LSF - 为作业挂载 cgroups.cpuset

bash - SASS:捕获语法错误

linux - 使用从其他文件复制的增量序列和名称字段在单个文件中多次复制模板

linux - 使用特定用户执行服务 - Ubuntu/CentOS