2015-12-02 132 views
3

我寻找一个正则表达式匹配特定字符形成单词不重复的任意字符形成字:例如,对于ABC和d,如何指定正则表达式来匹配那些字符串:正则表达式与特定字符

BDCA (匹配) adb(匹配) abcg(失败) aab(失败) 我尝试使用^ [abcd] {1,4} $,但它接受重复字符(最后一个示例)。

请帮忙吗?

+0

有你终于解决了吗?如果不是,请在相关详细信息中更新问题,并在聊天中使用anubhava分享的正确示例。 –

回答

9

你可以使用这个表达式基于负前瞻:

^(?:([abcd])(?!.*\1)){1,4}$ 

RegEx Demo

破碎:

^   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 
+1

谢谢你的快速回答。这样可行! – iouhammi

+0

嗯,有一个特殊的用例,它不起作用,如果我们有这些字符:a b c,所以这个aab shoud的作品,但与此正则表达式不。你能加强它吗? – iouhammi

+1

不明白这个特例。 aab'或'aabc'不是'a'吗? – anubhava