我一直在寻找它约3小时,现在我被卡住了。 这是问题所在:
我想找到7个字符的单词 only 4.和6. chars是相同的
像:
^...(.).\1.$
但我不想找到
aaaBaBa
所有其他字符必须彼此不同,如:
asdBfBg
我的问题与此类似:Java: Regular expression where each character occurs 0-1 times
但我的知识不足以使用 Lookarounds (?< =和(?=,(?
答案 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