求一个替换的正则表达式
第一个问题:替换以 <!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}