正则表达式,具有不同字符的单词

时间:2013-08-21 00:50:46

标签: regex chars

我一直在寻找它约3小时,现在我被卡住了。 这是问题所在:

我想找到7个字符的单词 only 4.和6. chars是相同的

像:

^...(.).\1.$

但我不想找到

aaaBaBa

所有其他字符必须彼此不同,如:

asdBfBg

我的问题与此类似:Java: Regular expression where each character occurs 0-1 times

但我的知识不足以使用 Lookarounds (?< =和(?=,(?

2 个答案:

答案 0 :(得分:1)

也许你可以使用负面断言,如下所示:

^(.)(.)(.)(.)(.)\4(.)(?<!(?:\1.*\1|\2.*\2|\3.*\3|\4.*\4.*\4|\5.*\5|\6.*\6).*)$

这将找到任何7个字母的单词,第4个和第6个字母相同,其第1个,第2个,第3个,第5个或第7个(\6)字母不会出现两次,其第4个字母是没有重复三次。

答案 1 :(得分:1)

这是可行的,也许有更好的方法来做到这一点。

/
\b # word boundary
(\w) # any word char
(?!\1)(\w) # any word char except \1
(?!\1|\2)(\w) # any word char except \1 or \2
(?!\1|\2|\3)(\w) # etc...
(?!\1|\2|\3|\4)(\w)
\4 # 4th capture
(?!\1|\2|\3|\4\5)(\w)
\b # word boundary
/x