Regex 如何匹配字母组合及其';事件

Regex 如何匹配字母组合及其';事件,regex,match,Regex,Match,假设我有这段文字: antianti barbary barberbarber 如何匹配这些“单词”中前两个字母的其他出现,例如第一个单词中的an\an,第二个单词中的ba\ba?我试着通过以下方式实现: /(^\w{2})/gm 加上\n或{2}但不进行评估。有什么提示我在这里做错了什么吗?捕获lookback中的前两个字母,然后使用back引用匹配后面出现的字母 /^(?<=(\w\w).*)\1/gm /^(\w{2})(?:.*(\1).*(\1)|.*(\1))/gmU

假设我有这段文字:

antianti
barbary
barberbarber
如何匹配这些“单词”中前两个字母的其他出现,例如第一个单词中的
an\an
,第二个单词中的
ba\ba
?我试着通过以下方式实现:

/(^\w{2})/gm

加上
\n
{2}
但不进行评估。有什么提示我在这里做错了什么吗?

捕获lookback中的前两个字母,然后使用back引用匹配后面出现的字母

/^(?<=(\w\w).*)\1/gm
/^(\w{2})(?:.*(\1).*(\1)|.*(\1))/gmU

/^(?这个正则表达式可能适合您:

^(\w{2})(?=.*\1)

在线演示:捕获每行的前两个字符和最后一个出现的字符

/^(\w{2})(?:.*)(\1)/gm
/^(\w{2})(?:.*)(\1)/gmU

这将捕获每行的前两个字符以及下一次出现的字符

/^(\w{2})(?:.*)(\1)/gm
/^(\w{2})(?:.*)(\1)/gmU
现在这很难看,但是…接下来的两次

/^(?<=(\w\w).*)\1/gm
/^(\w{2})(?:.*(\1).*(\1)|.*(\1))/gmU

没有正则表达式,只是
str.indexOf(str.slice(0,2))
?他想按正向或反向顺序匹配字符。@Barmar:如何获得“反向顺序”?这两个例子似乎都是向前看的。你用什么语言来做这件事?我用肯定的lookback给出了答案,但Javascript不支持它。这是为了一般目的,现在在这里测试它:它似乎是一个无效的正则表达式。它是无效的,因为lookback中有量词,这是不允许的。B但是,即使我把它移到了lookback之外,它也不起作用。看起来backreferences对lookbehinI内部的匹配不起作用。我也认为这会容易得多:)你的正则表达式看起来很奇怪。为什么要检查前一行的
(\w\w)。*
(假设引擎接受)?我不是检查前一行,而是用它来捕获字符串的前两个字符。如果前两个字符恰好重复,这将匹配前两个字符,它没有找到重复。可能我误解了,但它只在有重复的情况下找到前两个字符。这不对吗?他说他想匹配前两个字符的其他匹配项。在第一个例子中,它应该匹配字符5-6。也许我对我的问题不够清楚,但是第一个正则表达式就足够满足我的需要了。此外,我认为您可以在
之后删除