如何在字符串中选择一个变量?解析带正则表达式的变量字符串
我的字符串是
?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