2013-11-25 56 views
0

Javascript。我需要提取的 「插圖」 組第二數值:RegEx在simular character group中提取positinal值

Exampple字符串:

「的box-shadow:插圖的3px 4PX 0像素#444,插圖-1px -2px 0像素#444, 5像素 6像素0像素#444,插圖1px的1px的0像素#444"

所以我需要提取從例如字符串4和1

不知道該怎麼做。第一個捕獲組在

inset(?:(?: -\d+px)? (\d+)px){2} 

結果是:

+0

是smthing像.match(/(?!插圖)(\ d +)([PX ])/克)我是一個愚蠢的正則表達式,對不起。 – WHITECOLOR

+1

無後顧之憂;當他們嘗試閱讀正則表達式時,每個人都很愚蠢。 – sqykly

回答

1

此正則表達式應該做的伎倆:/inset -?\d+px (\d+)px/g

但是,因爲你需要使用全局修飾符來捕獲所有的事件,你應該使用exec方法在while而不是使用match,否則你贏了不會被抓獲的組織。

var match, regex = /inset -?\d+px (\d+)px/g, 
    str = "box-shadow: inset 3px 4px 0px #444, inset -1px -2px 0px #444,5px 6px 0px #444, inset 1px 1px 0px #444"; 

while (match = regex.exec(str)) { 
    console.log(match[1]) 
} 

如果你想加入陣列中的比賽,你可以使用:?!

var matches = []; 
while (match = regex.exec(str)) { 
    matches.push(match[1]); 
} 
console.log(matches); // ["4", "1"] 
+0

這工作謝謝你=) – WHITECOLOR

1
/inset\s+-?\d+px\s+\+?(\d+)px/g 
1

您可以使用此。