1

有人可以帮助我构建正则表达式以使用以下字符串中的正则表达式提取几个 URL

'<a href="http://mydmncd.app.corp:8080/ag/ps?q=C~0~0~0~0~0~v2hgsds4-0Ds43Hg~94~0~~~1~0~0~~http%3a%2f%2fnghj.com" target="_blank"><img border=0   
src="mydmncd.app.png" ALT="" clickUrl="http://mydmncd.app2.corp?q=1&f=4"/></a>'

网址始终以开头,http://mydmncd其余部分可能会有所不同。我必须提取网址,直到找到双引号。在上面的例子中,我必须提取http://mydmncd.app.corp:8080/ag/ps?q=C~0~0~0~0~0~v2hgsds4-0Ds43Hg~94~0~~~1~0~0~~http%3a%2f%2fnghj.com

我尝试使用这个正则表达式 /[http://mydmncd].*"/g ,但它匹配最后一个双引号。我也尝试过/[http://mydmncd].*\s/g,但没有运气。

请参阅JSFiddle

4

3 回答 3

1

问题是.*也匹配".

您应该能够替换.*[^\"]*匹配除 之外的任何字符"

我这里没有办法测试,希望对你有帮助。

于 2013-05-09T11:34:16.697 回答
0

我相信您想将其捕获为子表达式,以后可以将其引用为捕获组。正则表达式:/\([http://mydmncd].*\)"/g。然后可以稍后将其引用为\1. 维基百科页面有更多要说的。

于 2013-05-09T11:34:51.180 回答
0

怎么样

/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/

例如?它符合您的需求吗?

于 2013-05-09T11:35:29.997 回答