如何在字符串中選擇一個變量?解析帶正則表達式的變量字符串
我的字符串是
?aa=56345634563456&bb=16843621384
我試圖用這句話:
(\?|\&)aa=([^&]*)
給我這樣的結果:
?aa=56345634563456
我要選擇唯一的價值沒有AA =,只有這個值:
56345634563456
如何使用正則表達式選擇該值?
PS:我的英語不太好,謝謝理解
如何在字符串中選擇一個變量?解析帶正則表達式的變量字符串
我的字符串是
?aa=56345634563456&bb=16843621384
我試圖用這句話:
(\?|\&)aa=([^&]*)
給我這樣的結果:
?aa=56345634563456
我要選擇唯一的價值沒有AA =,只有這個值:
56345634563456
如何使用正則表達式選擇該值?
PS:我的英語不太好,謝謝理解
你的正則表達式(\?|\&)aa=([^&]*)
是正確的。但是您需要打印第二個捕獲的組,而不是打印整個比賽。
下面的正則表達式只會匹配這些值,您不需要去捕獲組。因此,當您使用下面的正則表達式時,打印整個匹配不會成爲問題。
,如果你想匹配這兩個變量aa
和bb
值試試下面的正則表達式,
(?<=[?&](?:aa|bb)=)[^&]*
如果你想匹配的aa
值而已,然後嘗試以下,
(?<=[?&]aa=)[^&]*
在javascript中,
> "?aa=56345634563456&bb=16843621384".match(/[?&]aa=([^&]*)/)[1];
'56345634563456'
OR
> var s = "?aa=56345634563456&bb=16843621384";
undefined
> var re = /[?&]aa=([^&]*)/g;
undefined
> function getMatches(string, regex, index) {
... index || (index = 1);
... var matches = [];
... var match;
... while (match = regex.exec(string)) {
..... matches.push(match[index]);
..... }
... return matches;
... }
undefined
> var matches = getMatches(s, re, 1);
undefined
> matches
[ '56345634563456' ]
你想要兩個變量'aa','bb'的值嗎? – 2014-08-29 02:13:43
您需要引用您的第二個匹配組,以僅打印匹配結果。也可以不用第一個捕獲組,使用一個字符類'[?&] aa =([^&] +)',然後引用第一個組作爲匹配結果。 – hwnd 2014-08-29 02:48:41