有人可以帮我构建正则表达式,使用下面字符串
中的正则表达式提取几个URLS'<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
答案 0 :(得分:1)
问题是.*
也与"
匹配。
您应该可以.*
替换[^\"]*
以匹配"
以外的任何字符。
我没有办法在这里测试,希望能帮到你。
答案 1 :(得分:0)
我相信您希望将其捕获为子表达式,以后可以将其作为捕获组引用。正则表达式:/\([http://mydmncd].*\)"/g
。然后可以将其引用为\1
。 wikipedia page还有更多话要说。
答案 2 :(得分:0)
怎么样
/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/
例如?它适合您的需求吗?