2015-10-30 27 views
0

這裏結束是一個有效的字符串,它始終與固定字符串SOME_START_FORMAT_開始,然後用一個或多個數字結束。因此,有效的字符串是模式的一個字符串匹配起始字符和數字與

SOME_START_FORMAT_1234 
SOME_START_FORMAT_12 

無效的字符串

SOME_INVALID_FORMAT_1234 
SOME_START_FORMAT_ 
SOME_START_FORMAT_1234_ 
SOME_START_FORMAT_1234_MORE 

我試圖用這個表達式^SOME_START_FORMAT_\d+$。我做錯了什麼?

Fiddle

+0

你在某些特定的編程語言做什麼呢? –

+0

輸出有什麼問題? 「SOME_START_FORMAT_」中是否包含特殊字符?並非所有的regexers都是相同的,'\ d'和'+'不是標準的正則表達式。 – dan08

+0

@Abhishek kumar - 我正在嘗試在JavaScript中使用 –

回答

1

你的正則表達式很好。我認爲小提琴是令人困惑的,因爲它把所有的輸入作爲一個字符串與幾個新的行字符對待。

你的模式按預期工作對個人字符串:

var input = [ 
 
    "SOME_START_FORMAT_1234", 
 
    "SOME_START_FORMAT_12", 
 
    "SOME_INVALID_FORMAT_1234", 
 
    "SOME_START_FORMAT_", 
 
    "SOME_START_FORMAT_1234_", 
 
    "SOME_START_FORMAT_1234_MORE" 
 
]; 
 

 
var pattern = /^SOME_START_FORMAT_\d+$/; 
 

 
input.forEach(function(s) { 
 
    var isMatch = s.match(pattern) !== null; 
 
    document.write(s + ": " + isMatch + "<br>") 
 
})

1

你需要檢查字符串,而不是行尾結束所以沒有什麼數字之後將匹配(\ Z):

^SOME_START_FORMAT_\d+\z 

的多本工作在regxr.com

/^SOME_START_FORMAT_\d+$/gm 

只需添加多行標誌。

+0

這不適用於他正在嘗試的正則表達式。 –

+0

這裏有效/^SOME_START_FORMAT_ \ d + $/gm http://regexr.com/3c3p1 – TinMonkey