正则表达式中 如何取出所有组中的值?
来源:百度知道 编辑: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;
。???
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方法