^([rat])(?!\g1)([rat])(?!(\g2|\g1))[rat]$
如果可能的话,我想摆脱我的正则表达式[rat]
的重复。可以用\c
左右替代它。
答案 0 :(得分:1)
您正在匹配字符类中的唯一字符。简单地说输入字符串不应包含第二次出现的已定义字符。只需检查是否发生相反的情况:
([rat]).*\1
或者一气呵成,验证字符串是否遵循^[rat]{3}$
规则:
^(?!.*?(.).*\1)[rat]{3}$
故障:
^
断言输入字符串的开头(?!
构建负面预测
.*?(.).*\1
寻找重复字符)
否定前瞻结束[rat]{3}
匹配包含已定义字符的3个字符长字符串$
输入字符串结束