我正在寻找一个正则表达式来匹配用特定字符组成的单词而不重复任何字符:例如,对于b c和d,如何指定正则表达式来匹配这些字符串:
bdca(匹配) adb(匹配) abcg(失败) aab(失败) 我尝试使用^ [abcd] {1,4} $,但它接受重复的字符(最后一个例子)。
请帮忙吗?
答案 0 :(得分:9)
您可以使用此正则表达式基于否定前瞻:
^(?:([abcd])(?!.*\1)){1,4}$
<强>解体:强>
^ Line start
(?: Start non-capturing group
([abcd]) Match a or b or c or d and group it
(?!.*\1) Negative lookahead to fail the match if same grouped char is ahead
){1,4} 1 to 4 occurrences of non-capturing group
$ Line end