2015-12-02 181 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