目录
- 使用正则表达式去除富文本
- 去除部分富文本标记
- 代码
- 总结
使用正则表达式去除富文本
最近在工作的时候,遇到一个需求,要把富文本给去除,说实话这个功能还是很简单的,但是我遇到的问题又没有那么简单……
去除部分富文本标记
我们有一段字符串,有很多的富文本标记,如:<size=60></size>
、<color=#F0F0F0></size>
等等。但是我们并不需要去除所有的富文本标记,因为我需要保留颜色的富文本标记,只去除字体大小的富文本标记,而且字符串里富文本的字体大小标记还有各种大小,非常令人头痛。
在网上也能找到各种去除富文本的代码,但是很多基本都是全部标记都去除的,而且是靠找<
和>
的位置来去除的,那如果我们的字符串里本身就带<
和>
,那么括号里的文字也会被去除掉……
后来主程叫我去研究一下正则表达式,一行代码就解决了。
代码
private string RemoveRichTextSize(string sourceText) { sourceText = Regex.Replace(sourceText, @"(<size=(\d+)>|</size>)", ""); return sourceText; }
其实很简单,就使用Regex.Replace()
函数就行了,最主要的是要了解正则表达式的使用。
Regex.Replace(原本的文本, 匹配规则, 替换的内容);
Regex.Replace函数需要输入三个参数,接下来简单说明
因为我需要把正则的内容剔除,所以替换的内容就是""
,这样就做到把内容去掉了
匹配规则里@"(A|B)"
代表了匹配A或B</size>
就是富文本的尾部
而富文本的头部<size=(\d+)>
就是难点了\d
代表了匹配一个数字字符[0-9]
,(\d+)
代表了匹配一个以上的数字
通过修改匹配规则,你也可以做到只去除富文本的颜色属性或者斜体属性等等。
在写这个功能的时候,参考了这位大佬的文章,里面也有常用的正则匹配规则,可以参考使用。
C# 正则表达式大全
总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)