您的位置:首页 > 编程语言 > C#

C#正则表达式查找匹配循环替换内容

2013-09-24 14:46 1481 查看
C#提取网页数据正则表达式二

string regstr = @"(?i)(?<=<td.*?.*?>)[^<]+(?=</td>)"; //提取td的文字
string regstr = @"<a\s+href=(?<url>.+?)>(?<content>.+?)</a>";   //提取链接的内容
string regstr = @"<td.+?><a\s+href=(?<url>.+?)>(?<content>.+?)</a></td>";  //提取TD中链接的内容
string regstr = @"<td.+?><span.+?>(?<content>.+?)</span></td>";  //提取TD中span的内容
string regstr = @"<td.+?>(?<content>.+?)</td>";   //获取TD之间所有的内容
string regstr = @"<td>(?<content>.+?)-<font color=#0000ff>推荐</font></td>"; //获取内容


全文提取其中内容

Regex reg = new Regex(@"<P\sclass=clientnamefont><B>(.*?)</B>");
var result = reg.Match(内容).Groups;
username = result[1].ToString();
//foreach (var item in result)
//{

//     Console.WriteLine(item);

// }
//直接获取第几项中的数据,其中里边不能根据规则匹配完全的循环(初学者暂没时间研究做是做个记录方便自己)
username = result[1].ToString();


一循环内替换:

string regstr = @"(?i)[\<]td.*?[\>].*?(</td>)"; //提取页面所有TD内容
string regReplace = @"(?i)[\<]td.*?[\>]";    //将所有<td......> 替换成<td>

Regex reg = new Regex(regstr, RegexOptions.IgnoreCase | RegexOptions.Singleline);
MatchCollection mc = reg.Matches(data);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups[0].ToString());
Console.WriteLine("------------------------------");
string s = Regex.Replace(m.Groups[0].ToString(), regReplace, "<td>", RegexOptions.IgnoreCase);
Console.WriteLine(s);

}


二统一替换:

string regstr = @"(?i)[\<]td.*?[\>].*?(</td>)"; //提取页面所有TD内容
string regReplace = @"(?i)[\<]td.*?[\>]";    //将所有<td......> 替换成<td>

Regex reg = new Regex(regstr, RegexOptions.IgnoreCase | RegexOptions.Singleline);
string s = Regex.Replace(data, regReplace, "<td>", RegexOptions.IgnoreCase);
MatchCollection mc = reg.Matches(s);
foreach (Match m in mc)
{

Console.WriteLine(m.Groups[0].ToString());
Console.WriteLine("------------------------------");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: