正则表达式中 如何取出所有组中的值?

来源:百度知道 编辑:UC知道 时间:2024/05/10 15:07:55
再用正则过滤的时候,我想找到所有括号中的组值,并把这些值连接起来,正则表达式是不确定的,不能用 标记 来取,只能用索引。

Regex filterReg = new Regex(regStr,RegexOptions.Compiled | RegexOptions.IgnoreCase);

if (filterReg.IsMatch(/要匹配的字符串/)
{

MatchCollection matches = filterReg.Matches(/要匹配的字符串/);
foreach(Match match in matches)
{
/要返回的字符串/ += match.Groups[/问题就在这里?/].Value;
}

我的正则表达式是变量,不能用标记来找括号中的东西,用索引该怎么找,还要考虑多层括号嵌套的情况。
谢谢下面 ieool 得 回答,但这也不是我想要得答案,我想要得是不通过名字来招匹配得内容,正则表达式不是事先制定好得,而是'变量',随意定制的......我事想通过ID来找....
match.Groups[ID].Value;
。???

举个例子说明.

有一条正则表达式(找出所有链接地址): 1.<a[^<>]href=[\"|'|]?[^\"'<>]+[\"|']?>

你要在Groups通过标记来取, 你得先在表达式里标明标记(?<标记>(内容))

变为

2.<a[^<>]href=[\"|'|]?(?<HREF>[^\"'<>]+)[\"|']?>

对比一下1和2有什么不同.

foreach(Match match in matches)
{
s += match.Groups["HREF"].Value;
}

-------------------------------------------------------
发个完整方案上来.

可以把正则表达式当成一个特殊的字符串来看。。
自己定义这个字符串,并提供get,set方法