我正在使用RegEx來測試字符串是否有效。該字符串必須以數字([0-9])開始和結束,但可以在其中包含逗號。正則表達式針對少於3個字符的字符串失敗
我想出了這個例子,但是它對於小於3個字符的字符串(例如1
或15
與1,8
一樣有效)失敗。大概這是因爲我專門測試了第一個和最後一個字符,但我不知道有任何其他方式來做這件事。
如何更改此RegEx以符合我的要求。謝謝。
^[0-9]+[0-9\,]+[0-9]$
我正在使用RegEx來測試字符串是否有效。該字符串必須以數字([0-9])開始和結束,但可以在其中包含逗號。正則表達式針對少於3個字符的字符串失敗
我想出了這個例子,但是它對於小於3個字符的字符串(例如1
或15
與1,8
一樣有效)失敗。大概這是因爲我專門測試了第一個和最後一個字符,但我不知道有任何其他方式來做這件事。
如何更改此RegEx以符合我的要求。謝謝。
^[0-9]+[0-9\,]+[0-9]$
使用此:
^[0-9]+(,[0-9])?$
的,[0-9]
部分將是可選的
可視化:
如果你想允許多個逗號號碼組......然後用*
替換?
。
如果你想允許逗號後面的數字組(在你的例子中似乎不是這種情況),那麼你應該在該數字組後面加上+
。
如果這兩個上面所說的期望,最終的正則表達式看起來是這樣的:
^[0-9]+(,[0-9]+)*$
在192312,9888上失敗。可能很好從OP得到確切的要求,但到目前爲止它只能以逗號和逗號之間的數字開始和結束。 –
謝謝,但它在'1,2,3' –
@DavidGard上失敗,如果你考慮使用'*'替換'?'的說明,那麼這是不正確的。當我最初閱讀你的問題時,我沒有把它看作是一個用例。 – smerny
我會說正則表達式
\d(,?\d)*
應滿足1個或多個數字,可以僅由一個逗號分隔。注意,1,2失敗
^\d+(?:,\d+)*$
應該工作。
在開始處始終有一個或多個數字,可選地後跟任意數量的由一個或多個數字組成的逗號分隔的其他組。
如果你允許彼此相鄰的逗號,那麼第二個+應該是*,我想。
'^(?!,)[0-9,] * [0-9] $' – Wrikken
您是否正在使用Javascript RegEx? –