正则表达式帮助,匹配长字符串,选择子字符串
本文关键字:字符串 选择 帮助 正则表达式 | 更新日期: 2023-09-27 18:06:01
我想匹配一个url,但只想选择url的一部分。这可能吗?
IE: url看起来像这样:
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;
几乎所有的regex解决方案都允许您检索组。你会发现在第一组中有括号的部分在等着你。
如果你不能使用组,那么你可以使用正面向后看:
(?<=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;
}
匹配将是整个url(在正则表达式中指定的内容)
需要提取对应的组。
类似:
foreach(Match m in matches){
m.Groups[1];
}