正则表达式帮助,匹配长字符串,选择子字符串

本文关键字:字符串 选择 帮助 正则表达式 | 更新日期: 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];
}