我有这个网址:
http://example.com/createSend/step4_1.aspx?cID=876XYZ964D293CF&snap=true&jlkj=kjhkjh&
这个正则表达式模式:
cID=[^&]*
产生这个结果:
cID=87B6XYZ964D293CF
如何删除“cID =”?
由于
答案 0 :(得分:23)
你可以使用lookbehind(不是在Javascript中):
(?<=cID=)[^&]*
或者你可以使用分组并抓住第一组:
cID=([^&]*)
答案 1 :(得分:12)
一般来说,要完成这样的事情,你至少有3个选择:
substring
的匹配项
鉴于此测试字符串:
i have 35 dogs, 16 cats and 10 elephants
这些是一些正则表达式模式的匹配:
\d+ cats
- &gt; 16 cats
(see on rubular.com)\d+(?= cats)
- &gt; 16
(see on rubular.com)(\d+) cats
- &gt; 16 cats
(see on rubular.com)
16
您还可以执行多次捕获,例如:
(\d+) (cats|dogs)
会产生2个匹配结果(see on rubular.com)
35 dogs
35
dogs
16 cats
16
cats
答案 2 :(得分:4)
使用捕获组:
cID=([^&]*)
然后获得$ 1:
87B6XYZ964D293CF
答案 3 :(得分:4)
使用JavaScript,您需要在正则表达式中使用capture group(将要捕获的部分放在()
内)
var url = 'http://example.com/createSend/step4_1.aspx?cID=876XYZ964D293CF&snap=true&jlkj=kjhkjh&';
var match = url.match(/cID=([^&]*)/);
// ["cID=876XYZ964D293CF", "876XYZ964D293CF"]
// match[0] is the whole pattern
// match[1] is the first capture group - ([^&]*)
// match will be 'false' if the match failed entirely
答案 4 :(得分:1)
这是Javascript代码:
var str = "http://example.com/createSend/step4_1.aspx?cID=876XYZ964D293CF&snap=true&jlkj=kjhkjh&";
var myReg = new RegExp("cID=([^&]*)", "i");
var myMatch = myReg.exec(str);
alert(myMatch[1]);
答案 5 :(得分:0)
javascript中有一种特殊语法,允许您从结果中排除不需要的匹配。语法是“?:” 在您的情况下,解决方案将是以下
'http://example.com/createSend/step4_1.aspx?cID=876XYZ964D293CF&snap=true&jlkj=kjhkjh&'.match(/(?:cID=+)([^&]*)/)[1];