一个可能的解决方案可能是使用积极的外观:(?<=n)n它会给你最终的位置:* N ***ñ** NN N * N ***ñ** N NN * N ***ñ**正如Timothy Khouri所提到的 ,积极的前瞻更为直观我更喜欢他的命题(?=nn)n更简单的形式:(n)(?=(n))这将引用您想要的字符串的第一个位置,并将捕获组(2)中的第二个n。那是因为:可以在前瞻中使用任何有效的正则表达式。如果它包含捕获括号,则将保存反向引用。因此,组(1)和组(2)将捕获'n'表示的任何内容(即使它是复杂的正则表达式)。