2013-10-24 51 views
0

我想驗證一個字符串,它只包含由一個或多個空格分隔的單個字母(限於A,B,C),並且不超過3個字母。如何正則表達式用空格分隔字母?

預期結果:

A: true 
A B: true 
A B C: true 
B C A: true 
A B C D: false 
A B D: false 
AB C: false 

也許正則表達式必須包含A\s*|B\s*|C\s*,但還有什麼?

+0

應該看到\ s +爲一個或多個空格 – duffymo

+1

他們能重複嗎?他們可以以任何順序來? –

+0

他們可以無序; @Tim:它確實抓住了它不應該的「A C B A」。 – membersound

回答

2

這一個正常工作:

^[ABC]{1}([ABC]){0,2}$ 

您的第一個字符,應啓動線相匹配。然後你匹配0到2個空格分隔的[A-Z]組。沒有空白左或右(^ $)

3
[ABC](+[ABC])?(+[ABC])? 

[ABC](+[ABC](+[ABC])?)? 

[ABC](+[ABC]){0,2} 
+1

這一個看起來不錯,但它不應該是空間而不是空間? –

1

你可以嘗試下:

^[ABC]([ABC]([ABC])?)?$ 
+0

這與「C B A」不符 – membersound

0

你可以使用一個量詞有限像這樣:

[ABC](?: +[ABC]){0,2} 
相關問題