我需要一個正則表達式以下列格式匹配的ID如何修復我的正則表達式^ d + [ - d]? d *以匹配123-45但不是123-?
123
或 123-45
有可以由一個連字符後的數字之前的任何量。現在的問題是,我的表達匹配123-
,我不需要它(連字符是可選的,但如果它存在,那麼必須至少有一個數字後面)。
我試過 ^\d+[-\d+]?
和^\d+[-\d]?\d*
,但都沒有工作。
我需要一個正則表達式以下列格式匹配的ID如何修復我的正則表達式^ d + [ - d]? d *以匹配123-45但不是123-?
123
或 123-45
有可以由一個連字符後的數字之前的任何量。現在的問題是,我的表達匹配123-
,我不需要它(連字符是可選的,但如果它存在,那麼必須至少有一個數字後面)。
我試過 ^\d+[-\d+]?
和^\d+[-\d]?\d*
,但都沒有工作。
嘗試類似:
^\d+(?:-\d+)?$
你想擁有-
可選的至少一個單一的數字。 [-\d]
允許連字符或一個數字,後跟零個數字。 ^\d+(?:-\d)?\d*$
中的類似模式。
參見:
(...)
和(?:...)
- 允許量詞的分組,像?
。[...]
- 允許從一組中選擇單個字符。怎麼樣:\ d + - ?
匹配所有數字和可選的連字符
這應做到:
\d+(?:-\d+)?
作爲了Kobi說 - 你幾乎擁有它的權利,你只是混合起來的方形與圓形支架
嘗試:
^\d+[-\d]?\d+
與0123更換強制它匹配一個或多個前面的元素,而不是零個或多個元素。
@Dunnie - 這幾乎不是「不必要的標籤」 - 事實上,我們總是要求人們*添加*這些標籤!這與正則表達式是使用.Net引擎還是在Asp.Net中用於驗證有關。 – Kobi 2011-06-10 21:58:51