首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

替换的正则表达式

2012-01-22 
求一个替换的正则表达式第一个问题:替换以 !DOCTYPE 开头,以 结尾的所有字符为空,要忽略大小写第二个问

求一个替换的正则表达式
第一个问题:替换以 <!DOCTYPE 开头,以 > 结尾的所有字符为空,要忽略大小写

第二个问题: 
见如下字符串,注意红色部分:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

如果有以 <meta 开头,以 > 结尾,且包含了 charset 的字符串,则替换 charset= 后面的 gb2312 为utf-8

其中,gb2312 是变化的,有可能是其它字符集,有可能左右还会有双引号。

在线等,很急。



[解决办法]
1.

C# code
            string input = "lkjsdfieflajskdfasdfasdf <!DOCTYPE 开头,以 > asdfeasdfasdf fasdfadsf";            string str = Regex.Replace(input, "<!DOCTYPE.*?>", "", RegexOptions.IgnoreCase);
[解决办法]

private void FormMain_Load(object sender, EventArgs e)
{
string content = "以<!DOCTYPE 开头,以 > 结尾\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" /> ";

//替换<!DOCTYPE 开头,以 > 结束的为空白
Regex regex = new Regex("<!DOCTYPE[^>]+>", RegexOptions.IgnoreCase);
content = regex.Replace(content, "");

//替换charset
regex = new Regex("<meta[^>]+>", RegexOptions.IgnoreCase);
content = regex.Replace(content, ReplaceCharset);

Console.WriteLine(content);
}

private string ReplaceCharset(Match match)
{
Regex regex = new Regex("charset=[^\"]+\"", RegexOptions.IgnoreCase);
return regex.Replace(match.Value, "charset=utf8\"");
}

输出:

以 结尾
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
[解决办法]
C# code
1、string result=Regex.Replace("你的字符串","(?i)<!doctype[^>]*>","");2、string result=Regex.Replace("你的字符串","(?i)(?<=meta[^>]*charset=)[^\\s>]+(?=\"[^>]*>)","utf-8");
[解决办法]
C# code
if(Regex.IsMatch("你的字符串","<[^>]*>")){ //TRUE} 

热点排行