首页 > 解决方案 > 正则表达式在文件中搜索一组括号,其中包含八个字符,全为 1 或 0,至少有一个 1?

问题描述

我正在尝试在文件中搜索一组括号,其中包含八个字符,全为 1 或 0,至少有一个 1。我目前正在使用下面的正则表达式,枚举所有可能的此类括号集,即强制它. 有一个更好的方法吗?

我的正则表达式:

(11111110)|(11111101)|(11111100)|(11111011)|(11111010)|(11111001)|(11111000)|...|(11111111)

标签: regex

解决方案


利用

grep -oP '\((?=[01]{8}\))0*1[10]*\)' file

请参阅正则表达式演示

细节

  • -o- 输出匹配而不是匹配行
  • P- 启用 PCRE 正则表达式引擎

图案

  • \(- 一个(字符
  • (?=[01]{8}\))- 需要八个01最多一个字符的正向前瞻)
  • 0*- 0+ 个零
  • 1- 一个1字符
  • [10]*- 0 个或多个零或一
  • \)- 一个)

推荐阅读