2011-08-17 69 views
0

我想匹配一个url,但只想选择部分url。那可能吗?正则表达式帮助,匹配长字符串,选择子字符串

IE:网址是这样的:

http://www.domain.com/link/88cbdgb7fwndkedl/ 

我正则表达式看起来像这样:

@"http://www.domain.com/link/([a-zA-Z0-9]+)/" 

,我希望只返回的ID,而是它抓住了整个URL 。

有什么建议吗?

编辑:使用C#Regex.Matches()

+0

什么语言?问题不在于你的正则表达式,而可能只是你使用整个比赛而不是捕获的组。 – Vache

+0

编辑我的回答 – MattoTodd

回答

1
Match match = Regex.Match(input, @"http://www.domain.com/link/([a-zA-Z0-9]+)/") 
string key = match.Groups[1].Value; 
+0

因此,是“Group [0]”完全匹配,还是“Group [1 ... etc等]'连续组? – MattoTodd

+0

是的,每种语言都差不多 –

0

比赛将是整个URL(什么是正则表达式指定)

你需要提取相应的组。

喜欢的东西:

foreach(Match m in matches){ 
m.Groups[1]; 
} 
1

几乎所有的正则表达式的解决方案,让你获得一个组。你会发现在组1

等着你的括号部分如果您无法使用组打扰,那么你可以使用正向后看:

(?<=http://www.domain.com/link/)[^/]+ 

但说实话...尝试使用组。这是一个很好的功能。 :-)

在C#中,它是:

Match match = Regex.Match(input, @"http://www.domain.com/link/([a-zA-Z0-9]+)/"); 

if (match.Success) { 
    string key = match.Groups[1].Value; 
} 
相关问题