Regex 正则表达式忽略前x个字符,然后匹配模式

Regex 正则表达式忽略前x个字符,然后匹配模式,regex,Regex,我想要一个模式,在前100个字符之后去掉10个字符,所以我想要100-110,然后我想要比较这一个,看看长度为10的字符串是否在一行中有4个零 只有正则表达式我怎么能做到这一点?我以前一直在使用子字符串。您可以使用以下内容: String = '1111111111111000000000000000000011000000000000001111111111111111111111111111111111001111111111111000001111000001111111111111000

我想要一个模式,在前100个字符之后去掉10个字符,所以我想要100-110,然后我想要比较这一个,看看长度为10的字符串是否在一行中有4个零

只有正则表达式我怎么能做到这一点?我以前一直在使用子字符串。

您可以使用以下内容:

String = '11111111111110000000000000000000110000000000000011111111111111111111111111111111110011111111111110000011110000011111111111110000000000011111111111111111010001111111111111111111110011111111111111111111111111110111112111121111111111111111111000011000001011111111111101022111101111001111111111110000001000000111111111111111000000000000011111111111111100011111111001011111111100000000000000000000000000000000100111001000000000000000000011000000000000001111111000000000000000000000000000000000001111100000000000000000000011000000000000000000000010000000000333333333'
说明:

  • ^
    :匹配字符串的开头,以避免在输入中的任何位置使用该模式
  • {100}
    :匹配100个字符
  • (?=)
    :向前看。这不是捕获,而是验证仍然在前方的东西
  • {0,6}
    :0到6个字符
  • 0000
    :字面上是4个零
  • (.{10})
    :捕获10个字符,根据正则表达式的风格,可以使用
    \1
    $1
    引用它们
您可以使用:

String = '11111111111110000000000000000000110000000000000011111111111111111111111111111111110011111111111110000011110000011111111111110000000000011111111111111111010001111111111111111111110011111111111111111111111111110111112111121111111111111111111000011000001011111111111101022111101111001111111111110000001000000111111111111111000000000000011111111111111100011111111001011111111100000000000000000000000000000000100111001000000000000000000011000000000000001111111000000000000000000000000000000000001111100000000000000000000011000000000000000000000010000000000333333333'
说明:

  • ^
    :匹配字符串的开头,以避免在输入中的任何位置使用该模式
  • {100}
    :匹配100个字符
  • (?=)
    :向前看。这不是捕获,而是验证仍然在前方的东西
  • {0,6}
    :0到6个字符
  • 0000
    :字面上是4个零
  • (.{10})
    :捕获10个字符,根据正则表达式的风格,可以使用
    \1
    $1
    引用它们

    • 上述答案非常完美。但这与包括前100个字符在内的所有字符都匹配。 如果忽略前100个,我们可以使用

      ^.{100}(?=.{0,6}0000)(.{10})
      
      (?<=.{100})
      

      (?上面的答案很完美。但它匹配所有字符,包括前100个字符。
      如果忽略前100个,我们可以使用

      ^.{100}(?=.{0,6}0000)(.{10})
      
      (?<=.{100})
      

      (?可能投票人可以解释这个答案有什么问题?投票人至少应该在投票前提供一些有用的评论。可能投票人可以解释这个答案有什么问题?投票人至少应该在投票前提供一些有用的评论。