[英]RegExp: Match repeating sequence pattern of numbers
我想寫一個匹配的東西像一個正則表達式01, 03, 05-08, 10
但不匹配01, 03, 05-08,
因為SQUENCE已與多家結束)。
因此,基本上我的“字符串”由/(\\-?\\d+)\\-(\\-?\\d+)/
(例如01-05或-5-10)組成,該模式的每個實例都用逗號分隔。
我在RegExr上嘗試了很長時間,但是找不到解決我問題的方法。 這是我的嘗試: http : //regexr.com?34hh1
使用RegExp我想執行SEQUENCE_EXP.test('some string')。
您可以使用$
運算符指示字符串必須以表達式結尾。 在您的情況下,您可以嘗試:
/^((-?\d+(-\d+)?)\s*,\s*)+(-?\d+(-\d+)?)$/
請注意,您不必在方括號之外轉義-
。
因此,您有兩種模式,有效數字\\d+
和\\d+-\\d+
那么NUMBER_PATTERN
必須是\\d+(-\\d+)?
還有一個序列NUMBER_PATTERN[, NUMBER_PATTERN]*
那這個呢:
/\d+(-\d+)?(, \d+(-\d+)?)*$/
function test(r){
return "01, 03, 05-08, 10".match(r) &&
!"01, 03, 05-08,".match(r)
}
test(/^(\d+(-\d+)?,\s*)*\d+$/)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.