2017-01-06 37 views
0

我試圖創建以下模式正則表達式:正則表達式 - 兩個具體的數字,後跟可選的數字

  • 開始有兩個具體的位數(例如:((50)|(51)|(52))
  • 可以跟隨的任何量數字

實例:

  • 50匹配
  • 523412比賽
  • 53不匹配
  • 54234不匹配

我設法創建這個

^((50)|(51)|(52))+[0-9]+?$ 

但它並不像5051匹配的情況下。它只在緊隨其後至少有一位數時纔有效。

+0

'5 [012] [0-9] *'應該做的,以匹配0至+ Inf文件50,51或52簡言之後候選條件的數字,做一些搜索和學習正則表達式量詞字符' +','*','?'。 – Tensibai

+0

你的正則表達式不起作用,因爲'+?'量詞至少需要1個字符。使用'*'。 –

回答

4

以下應該工作;

^(50|51|52)[0-9]*$

這個匹配50,51,或52在字符串的開始,然後再其後的數字的任何量。你的工作非常接近。

Here's a working example


好的建議通過Tensibai

^5[012][0-9]*$

這在字符串的開始處的數5相匹配,接着爲無論是0,1,或2 - ,然後再次此後任何數量的數字。

Here's a working example for this solution

+0

它的工作原理,謝謝!不幸的是,我不能遵循這個建議,因爲有更多的可用的兩位數字的組合並不以5開頭。不過,我會記住這一點。 –

相關問題