Regex 在正则表达式中捕获除匹配的第一个字母之外的重复字母

Regex 在正则表达式中捕获除匹配的第一个字母之外的重复字母,regex,google-sheets,Regex,Google Sheets,我试图得到一个正则表达式,它捕捉重复的字母,除了匹配的第一个字母 我有一个正则表达式,它获取重复的字母:([a-z])\1{2,} 然而,这将捕获sooo中的“ooo”。但我只想捕捉“oo” (将此用于google sheets中的“查找和替换”功能)由于您没有提到正在使用的编程语言或regex风格,我将提供多个选项: 使用捕获组: ([a-z])(\1{2,}) (?<=([a-z]))\1{2,} ([a-z])\K\1{2,} 这将适用于每个正则表达式风格,但您预期的匹配将在

我试图得到一个正则表达式,它捕捉重复的字母,除了匹配的第一个字母

我有一个正则表达式,它获取重复的字母:([a-z])\1{2,}

然而,这将捕获sooo中的“ooo”。但我只想捕捉“oo”


(将此用于google sheets中的“查找和替换”功能)

由于您没有提到正在使用的编程语言或regex风格,我将提供多个选项:

  • 使用捕获组:

    ([a-z])(\1{2,})
    
    (?<=([a-z]))\1{2,}
    
    ([a-z])\K\1{2,}
    

    这将适用于每个正则表达式风格,但您预期的匹配将在第二个捕获组中

  • 如果您的正则表达式风格支持,请使用正向查找:

    ([a-z])(\1{2,})
    
    (?<=([a-z]))\1{2,}
    
    ([a-z])\K\1{2,}
    


  • 请注意,
    \1{2,}
    意味着只有当字母重复至少3次(例如,
    aaa
    )时,才有匹配项。如果这不是您想要的,并且您希望在重复两次字母时匹配,则应使用
    \1+

    因为您没有提到您使用的编程语言或regex风格,我将提供多个选项:

  • 使用捕获组:

    ([a-z])(\1{2,})
    
    (?<=([a-z]))\1{2,}
    
    ([a-z])\K\1{2,}
    

    这将适用于每个正则表达式风格,但您预期的匹配将在第二个捕获组中

  • 如果您的正则表达式风格支持,请使用正向查找:

    ([a-z])(\1{2,})
    
    (?<=([a-z]))\1{2,}
    
    ([a-z])\K\1{2,}
    


  • 请注意,
    \1{2,}
    意味着只有当字母重复至少3次(例如,
    aaa
    )时,才有匹配项。如果这不是您想要的,并且您希望在字母重复两次时匹配,则应使用
    \1+

    您使用的是什么编程语言?
    ([a-z])(\1+)
    这是您想要的吗?(扔掉第一个捕获)您使用的是什么编程语言?
    ([a-z])(\1+)
    这就是您想要的吗?(扔掉第一个捕获)