C# Unity使用正则表达式去除部分富文本

使用正则表达式去除富文本

最近在工作的时候,遇到一个需求,要把富文本给去除,说实话这个功能还是很简单的,但是我遇到的问题又没有那么简单……

去除部分富文本标记

我们有一段字符串,有很多的富文本标记,如:<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# 正则表达式大全

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
正则表达式(Regular Expression)是一种用于匹配和处理文本的强大工具,它在很多编程语言中都有广泛应用,包括Unity。在Unity中,可以使用正则表达式来进行字符串的匹配、替换、提取等操作。 Unity使用正则表达式语法与其他编程语言中的语法基本相同,常见的用法包括: 1. 匹配字符串:使用正则表达式可以判断一个字符串是否符合某种模式。例如,可以使用正则表达式`"hello"`来匹配字符串中是否包含"hello"这个单词。 2. 替换字符串:使用正则表达式可以将字符串中符合某种模式的部分替换为指定的内容。例如,可以使用正则表达式`"\\d+"`来匹配字符串中的数字,并将其替换为指定的内容。 3. 提取信息:使用正则表达式可以从字符串中提取出符合某种模式的部分。例如,可以使用正则表达式`"\\w+"`来提取字符串中的单词。 在Unity中,可以使用`System.Text.RegularExpressions.Regex`类来进行正则表达式的操作。该类提供了一系列静态方法,如`Match`、`Matches`、`Replace`等,用于执行正则表达式的匹配、替换等操作。 下面是一些相关问题: 1. Unity中如何使用正则表达式进行字符串匹配? 2. 如何在Unity使用正则表达式进行字符串替换? 3. Unity中如何提取字符串中符合某种模式的部分? 4. 有没有一些常用的正则表达式示例在Unity中的应用场景? 5. Unity中的正则表达式是否支持大小写敏感? 6. 如何处理正则表达式中的特殊字符?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值