我有一個字符串,我試圖抓住裏面的整數。該字符串的樣子:從圓括號內取整數
"(2) This is a string"
我需要虎視眈眈那2
。但它可以是任何數字,所以我嘗試過:
var str = "(2) this is a string";
var patt = /\(\d\)/;
var num = str.match(patt);
這不會返回正確的答案。我應該在()
上進行拆分還是有更好的正則表達式?
我有一個字符串,我試圖抓住裏面的整數。該字符串的樣子:從圓括號內取整數
"(2) This is a string"
我需要虎視眈眈那2
。但它可以是任何數字,所以我嘗試過:
var str = "(2) this is a string";
var patt = /\(\d\)/;
var num = str.match(patt);
這不會返回正確的答案。我應該在()
上進行拆分還是有更好的正則表達式?
var str = "(2) this is a string";
var patt = /\((\d)\)/;
var num = str.match(patt)[1];
2件事。當你想從一個匹配的字符串中捕獲一個段時,你使用()
來說明這一點。所以我只是將\d
包裹在parens中來捕捉它。
其次,爲了訪問捕獲的段,您必須鑽取返回的數組。 match
方法將返回一個數組,其中第一個項目是整個匹配的字符串,第二個項目是任何匹配的捕獲組。因此,使用[1]
來獲取第一個捕獲組(第二個項目)
var str = "(2) this is a string";
var patt = /\((\d+)\)/;
alert(str.match(patt)[1]);
This works!
它爲什麼有效。由於在(())混亂中還有一個捕獲,它填充了匹配數組中的[1]元素。
使用此。不事關多少括號
var str = "(2) this is a string";
var patt = /\(\d\)/;
var num = str.match(patt)[0].replace("(", "").replace(")","")
這應該工作
var str = "(2) this is a string";
var a = /\([\d]*\)/g.exec(str)[0];
var num = a.substring(1, a.length-1);
是數量總是要單括號裏面?或者可能會有雙括號或數字在某個地方? –