【正则】仿记事本的多个正则表达

1.只保留p img a b strong标签

 var regex2 = new Regex("<(?!/?p|/?img|/?a|/?b[^a-zA-Z]|/?strong)[^<>]*>", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);
content = regex2.Replace(content, "");

2.去掉标签属性(不包括img a)

//匹配所有的标签属性
 var regex1 = new Regex("<([a-zA-Z1-6]+)(\\s*[^>]*)?>", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);
 //匹配出所有不是img a标签
var regex5 = new Regex("<(?!(img|a)[ >])[^>/]*>", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);
//查找出所有的不是img a的标签
var matches = regex5.Matches(content);
for (int i = 0; i < matches.Count; i++)
{
    var str = regex1.Replace(matches[i].Value, "<$1>");
    content = content.Replace(matches[i].Value, str);
}

3.img标签保留src alt属性(a标签保留href和这个一样,故省略)

//匹配img标签
var regex6=new Regex("<img.*?/?>", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);
//匹配src=""字段
var regex7=new Regex("src=\"(.*?)\"", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);
//匹配alt字段
var regex8=new Regex("alt=\"(.*?)\"", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);
//找出所有的img标签
var imgMatches = regex6.Matches(content);
for (int i = 0; i < imgMatches.Count; i++)
{
	//拼接新的img
    var src = regex7.Match(imgMatches[i].Value);
    var rep = "<img "+src+" ";
    if (regex8.IsMatch(imgMatches[i].Value))
    {
        var alt = regex8.Match(imgMatches[i].Value);
        rep = rep + alt + ">";
    }
    else
    {
        rep += ">";
    }
    content = content.Replace(imgMatches[i].Value, rep);
}

4.&字符开头,之后的1-5个字符全部删除,比如&nbsap;

var regex4=new Regex("&[a-zA-Z]{0,5};?", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);
content = regex4.Replace(content, "");

5.移除空标签

  var regex = new Regex("<([a-z]*)(?:\\s+?[^>]*?)?>\\s*?<\\/\\1>", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);
while (regex.IsMatch(content))
{
    content = regex.Replace(content, "");
}

完结撒花~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
特点: 1 自定义语法高亮,支持HTML, XML, CSS, JavaScript, VBScript, ASP, PHP, CSS, Perl/CGI,C/C++, C#, Java, VB, Pascal, Assembler, SQL, Python, NSIS,INI, REG, INF, BAT, DIFF等众多文件 2 支持ANSI,Unicode,UTF-8等编码互换 3 可以设置无限个书签(9种图标可换)轻松定位 4 空格,制表符彩色显示,并可互相转换 5 可以对任意的文本块进行操作,ALT键+鼠标 6 对括号{}〔〕()可以高亮配对显示,方便查看(仅对英文符号有效) 7 可以自定义代码页和字符集,对中文支持良好 8 使用标准的正则表达式搜索和替换 9 可以使用半透明模式,cool 10 快速放大、缩小页面,不用再设定字体大小 ■替换系统记事本的方法: ★如果你的系统是window XP或者windows 2000,那么请先关闭你的系统文件保护,到c:\windows\system32\dllcache 把notepad.exe删除, 然后把Notepad2.exe改名为notepad.exe,分别拷贝到c:\windows 和c:\windows\system32目录下替换原有的notepad.exe记事本程序即可! ★如果你的系统是windows98,那么直接把更名后的Notepad2拷贝到c:\windows和c:\windows\system32目录下替换原有的notepad.exe记事本程序即可! ■关闭系统文件保护的方法: 从注册表中找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon ,修改"SFCDisable"键值为"FFFFFF9D",如果需要重新启用该功能,重新设置为"0"就可以了。 ■下载地址:http://www.cnblogs.com/Files/submaie/notepad.rar 从注册表中找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon ,修改"SFCDisable"键值为"FFFFFF9D",如果需要重新启用该功能,重新设置为"0"就可以了。 ■下载地址:http://www.cnblogs.com/Files/submaie/notepad.rar

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值