Regex在文件中搜索一组括号,括号内有八个字符,都是1或0,至少有一个1



我试图在文件中搜索一组括号,括号内有八个字符,都是1或0,至少有一个1。我目前正在使用下面的regex,列举所有可能的括号集,即暴力强制。有更好的方法吗?

我的正则表达式:

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

使用

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

请参阅regex演示

详细信息

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

图案

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

您可以使用此regex,

((?=[10]{8})(?=.*1.*).{8})

解释:

  • (->匹配文字((起始大括号(
  • (?=[10]{8})-->向前看,确保接下来的八个字符由零和一组成
  • (?=.*1.*)-->向前看,确保至少存在一个"1"字符
  • .{8}-->正好匹配八个字符
  • )-->匹配文字)(右大括号(

演示

此正则表达式也可以工作:

(?!(00000000))(d{8})

相关内容

最新更新