如何匹配字母组合及其出现

时间:2014-01-15 13:31:40

标签: regex match

假设我有这样的文字:

antianti
barbary
barberbarber

如何匹配每个“单词”中前两个字母的其他出现,例如第一个单词中的an\an和第二个单词中的ba\ba?我试图得到它:

/(^\w{2})/gm

\n{2},但没有评估。我在这里做错了什么提示?

3 个答案:

答案 0 :(得分:1)

这个正则表达式可能适合你:

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

在线演示:http://regex101.com/r/jV7uF3

答案 1 :(得分:1)

这会捕获每一行的前两个字符和最后一个字符。

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

这会捕获每行的前两个字符以及下一个字符。

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

现在这变得很丑陋,但......接下来的两次事件。

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

答案 2 :(得分:0)

捕获lookbehind中的前两个字母,然后使用反向引用来匹配以后出现的内容。

/^(?<=(\w\w).*)\1/gm