正则表达式帮助,匹配长字符串,选择子字符串
问题描述:
我想匹配一个url,但只想选择部分url。那可能吗?正则表达式帮助,匹配长字符串,选择子字符串
IE:网址是这样的:
http://www.domain.com/link/88cbdgb7fwndkedl/
我正则表达式看起来像这样:
@"http://www.domain.com/link/([a-zA-Z0-9]+)/"
,我希望只返回的ID,而是它抓住了整个URL 。
有什么建议吗?
编辑:使用C#Regex.Matches()
答
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
是的,每种语言都差不多 –
答
比赛将是整个URL(什么是正则表达式指定)
你需要提取相应的组。
喜欢的东西:
foreach(Match m in matches){
m.Groups[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;
}
什么语言?问题不在于你的正则表达式,而可能只是你使用整个比赛而不是捕获的组。 – Vache
编辑我的回答 – MattoTodd