关于网友提出的“正则表达式 正则表达式foreach同时匹配两个问题”问题疑问,本网通过在网上对“正则表达式 正则表达式foreach同时匹配两个问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:正则表达式 正则表达式foreach同时匹配两个问题描述:
下面的代码为了使得到的字符串同时匹配ms1,ms2用了两个foreach,结果是错误的出现匹配重复
应该怎么写??
string Reg = @"...";
string titReg = @"..";
foreach (Match match in matches)
{
MatchCollection ms1 = Regex.Matches(match.ToString(), Reg);
MatchCollection ms2= Regex.Matches(match.ToString(), titReg);
foreach (Match m1 in ms1)
{
foreach (Match m2 in ms2)
{ string UrlStr = m1.ToString;
string tit = m2.ToString();
Response.Write(UrlStr + ":" + tit + "
");
}
}
}
解决方案1:
很不明白的说
没细看你写的代码,但可以很明确的告诉你,正则不是那样用的
下面是源字符串test中有多个匹配项的写法,如果只有一个用Match即可
string test = "xxx ";
MatchCollection mc = Regex.Matches(test, @"]*?href=(['""]?)(?[^'""\s]*)\1[^>]*>\s*(? [^>]*?)\s*", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
richTextBox1.Text += m.Groups["url"].Value + "\n";
richTextBox1.Text += m.Groups["text"].Value + "\n";
}