2013-07-31 73 views
3
一個正則表達式匹配的第二次出現

我想從以下網址獲得兩個字符串,第一個是-43.575285,第二個是172.762549如何獲得在Javascript

http://maps.apple.com/?lsp=9902&sll=-43.575285,172.762549

我寫了一個正則表達式模式re = /-?\d+\.\d{6}/;

哪些只適用於第一個值,有什麼辦法匹配器可以繼續搜索結果字符串,並給我第二個模式發生?

P.S我記得Ruby有引用發生$1-$9

+3

PS:Ruby的'$ 1','$ 2',...全局是捕捉組,而不是爲一個字符串中匹配。 –

+0

@ muistooshort你是對的。 – mko

回答

7

添加g標誌到底...

re = /-?\d+\.\d{6}/g; 

g全球

var matches = str.match(re); 

請注意,如果您添加捕獲組,這將不會像上面那樣工作。

+0

鏈接到任何文檔?如果你有一個捕獲組,但是你想引用這個組的幾個匹配呢? – Magne

+0

@Magne繼續調用'match()'直到得到'null',例如用'while(){}'循環。 – alex

1
var in="http://maps.apple.com/?lsp=9902&sll=-43.575285,172.762549"; 

var res=in.match(-?\d+\.\d{6}/g); 

現在解析度是匹配的陣列。如果你想要第二個元素,

res[1] 

會爲你得到它。