2013-04-06 170 views
1

我有一個字符串,我需要驗證其有效性,以前者,如果:淨正則表達式逗號分隔字符串,其嚴格的格式

  • 這完全是空的
  • 或者包含逗號分隔的字符串,必須如下所示:'abc,def,ghi,jkl'。

這些逗號分隔值有多少並不重要,但是如果字符串不是空的,它必須堅持逗號(且只有逗號)分隔的格式,而且它們周圍沒有空格,並且每個值可能只包含ascii az/Az ..沒有特殊字符或任何東西。

我將如何驗證字符串是否遵守規則,或不?

回答

8

你可以使用這個表達式

^([a-zA-Z]+(,[a-zA-Z]+)*)?$ 

^(?!,)(,?[a-zA-Z])*$ 

^是字符串

[a-zA-Z]的開始是一個字符類匹配一個大寫 lowerca SE字母

+是量詞,其前面的字符或組1匹配多次

*是其前面的字符或組0匹配量詞多次

?是量詞與前面的字符或組相匹配0或1次

$是字符串

+0

我希望我能+2您抽出寶貴的時間來解釋每個令牌。 :) – 2013-04-06 11:45:48

+0

@ChrisSinclair謝謝克里斯... – Anirudha 2013-04-06 15:28:22

+0

Woohoo - 謝謝 - 很多 - @The_Land_Of_Devils_SriLanka!特別是對於偉大的,很好的解釋! – 2013-04-06 22:33:46

1

末使用正則表達式考慮

bool isOK = str == "" || str.Split(',').All(part => part != "" && part.All(c=> (c>= 'a' && c<='z') || (c>= 'A' && c<='Z')));

相關問題