2015-02-06 31 views
0

我有一個特定的數字格式:1-2345678908765其中第一個數字用' - '和後面的十三個數字分開。我試過使用:想要一個正則表達式來驗證一個數字格式

[]?[0-9]\-^[0-9]{1,13}$ 

但沒有奏效。

由於提前

桑傑·蘇曼

+0

嘗試:'^ [0-9] - [0-9] {13} $' – alfasin 2015-02-06 19:43:59

+0

那裏有什麼'^'?這表明字符串 – 2015-02-06 19:44:06

+0

@MarcB的開始,但在字符串中間表示否定,仍然不知道爲什麼他使用它... – alfasin 2015-02-06 19:45:22

回答

3

看來你的正則表達式語法是畸形的,第一個問題是,[]?[0-9]如果使用(PCRE)形成從組匹配任何一個字符一個字符類字符。

否則,[]?會執行零寬度匹配,因爲您有一個空的可選類。

您還有字符串的開頭^錨點放置在連字符後面,其中以下數字在該字符串中給定的位置處未聲明。

您可以使用以下正則表達式來代替:

^[0-9]-[0-9]{13}$ 

說明

^   # the beginning of the string 
[0-9]  # any character of: '0' to '9' 
-   # '-' 
[0-9]{13} # any character of: '0' to '9' (13 times) 
$   # before an optional \n, and the end of the string 

Live Demo

0
"/^[0-9][-][0-9]{13}$/" 

它將匹配單號,followe d由1個hypen開始,隨後是13個數字。

0

嘗試/^[0-9][\-][0-9]{13}$/gm

您可以在regexr.com

0

測試出的正則表達式我固定它最後。

[] [0-9] - [0-9] {13}

0

這方面的工作,請嘗試進行分組,可這是有益的未來如您需要查找和替換。如果你想找到的所有行開始用 「​​1」:

(^ 1 {1}) - ([0-9] {13})

交換第一和第二值,你pnly需要例如,NotePad ++的「替換」文本框中的「\ 2- \ 1」。

enter image description here

BTW - 請https://www.regex101.com/滿足您的需求。

相關問題