2012-02-02 58 views
-1

我需要一個正則表達式來從一種形式使用這些值正則表達式來驗證定界符分隔的數字

例如驗證的輸入:

123, 444,231, 2231 ... 

什麼是該週期的最佳方式的正則表達式?

+3

你能澄清你的問題嗎? – 2012-02-02 10:54:12

+0

這些值應該具有什麼格式? – m0skit0 2012-02-02 10:55:37

回答

1

如果我正確理解你的問題,你想匹配的數字?

使用此:

([0-9]{1,}+){1,} 

將匹配的每個值。

+0

但個人而言,我不會爲此使用正則表達式。 C#有一種基於字符串分隔符的本地方式,在本例中爲逗號。 – 2012-02-02 10:56:23

1

我可以建議你以下。 ^(\s*\d+\s*,?)+$需要考慮的開頭和結尾的CSV的空間的方法可行值

編輯

我修改的表達,這裏是新版本:^(\s*\d+\s*,)*(\s*\d+\s*){1}$它西港島線不評論的情況下失敗。

+0

輸入失敗:12 12,12 – Tomek 2012-02-02 11:14:28

1
([1-9]\d{2,3},\s*) //first one digit 1-9, followed by 2 to 3 other digits,a comma and zero or one whitespace 
{0,}   //This pattern may occour 0 or more times, followed by... 
([1-9]\d{2,3}) // one of these number without the trailing comma, only once. 
+0

失敗測試:123 123,123 – Tomek 2012-02-02 11:39:35

+0

@Tomek,這是因爲他沒有給出任何數字之間沒有逗號的示例。 ([1-9] \ d {2,3} \ s *,* \ s *)將起作用。它不會與多個空間一起工作,因爲這不在給出的例子中。相應地改變。 – Pengtuzi 2012-02-02 12:08:27

1

的要求的規範是有點模糊,不過這可能是你想要什麼:

^(\s*\d+\s*(?(?=,\s*\d),|))+$ 

它驗證通過分隔的數字序列「」允許開頭和結尾的白色字符,而不是開始並以「,」結尾