2011-07-15 46 views
0

我有以下的正則表達式,正則表達式得到連續編號

[M][1-4][-][Q][1-4]{1}['][0-9]{2}[-][0-9]{2} 

在此,[0-9]{2}[0-9]{2}在年底必須是連續的號碼。即; 09-1011-1212-13

任何一個可以請幫我,我怎麼可以改變的表達,以獲得所需的格式

+3

正則表達式是不是這個工作的工具:正則表達式不具有的一個或多個數字數值的概念。我建議你簡單地匹配這個,因爲你現在正在做這個,如果這兩個數字是連續的,那麼檢查「正常」編程。 –

+2

爲了好玩:http://ideone.com/do403 –

回答

1

你不能這樣做,因爲它太過於依賴於上下文。

事實上,你可以這樣做,但你必須手動插入在正則表達式的每個組合。這不是一個理智的人會做的事情。它不可擴展或不可讀。

0

我建議這個

M[1-4]-Q[1-4][']([0-9]{2})-([0-9]{2}) 
  1. 你不需要你的一些方括號。

  2. 你不應該在正則表達式直接做到這一點。我把圍繞這些號碼中的括號,這意味着你可以在拍攝第1組第一個數字和捕獲組第二2.
    現在我想這兩個變量轉換成數字,減去他們並檢查不同的是1

+0

採用特殊的情況下爲99-00 :-) –

1

使用正則表達式你不能比較的數值....

正則表達式是在語法偉大的,但在語義垃圾。所以正則表達式肯定會幫助你認識x-y,但是你要求太多才能繼續推理x和y之間的關係。