简单正则表达式模式匹配


Simple Regex Pattern Matching

这是我的图案

<a href="(.*?)" onmousedown="test'(')">

来源

<tags><tags><a href="http://google.com" onmousedown="test()"></tags></tags>

如果我使用这个模式,我得到这样的结果:

<a href="http://google.com" onmousedown="test()">

我想要得到的就是

http://google.com

任何帮助都会很感激。谢谢你!:)

我稍微修改了正则表达式(在两端添加.*),以便它适合下面的两个示例。

var regex = /.*?<a href="([^">]*)" onmousedown="test'(')">.*/; 
var input = '<tags><tags><a href="http://google.com" onmousedown="test()"></tags></tags>';

方法#1:使用正则表达式替换。在本例中,这是将整个字符串与模式匹配,并仅将其替换为第一个捕获的组($1)。

url1 = input.replace(regex, "$1");
alert(url1)

方法#2:使用regex与输入字符串和模式匹配,然后只选择第一个捕获组([1])。

url2 = regex.exec(input)[1];
alert(url2);

在这两种情况下,输出将是来自href标记的url。