2010-10-20 58 views
0

我有一个内嵌约2k个URL的字符串,需要使用正则表达式模式来提取URL。有URL字符串的正则表达式 - 提取字符串中的URL

实施例的嵌入式

“blahblahblah; HTTP://subdomain.server.com/index.asp ID = 1000; blahblahblah;”

该URL将始终以“http://subdomain.server.com/”开头并以第一个“;”结尾。唯一改变的是子目录和页面。

从上面的例子中,我需要捕获 “http://subdomain.server.com/index.asp?id=1000”

我试过(http://subdomain.server.com /)。*(;) - 但它不会停在第一个“;”。它实际上会抓取“http://subdomain.server.com/index.asp?id=1000;blahblahblah;”

任何帮助将不胜感激。

谢谢!

回答

0

没关系 - 我明白了。 (http://subdomain.server.com/).*?(;)

+1

修复捕获组:'(http://subdomain.server.com/.*?)(?:;)' – drudge 2010-10-20 23:16:47

0

任何你不能只用你的语言的原因string.split(';')等价于?

1

更准确的正则表达式是(http://subdomain.server.com/[^;]*);

它匹配域,然后匹配除分号以外的所有字符,然后在末尾匹配分号。这段时间的反斜杠是逃避它们的必要条件,因为这段时间是正则表达式中的一个特殊字符。