C#?Unity使用正則表達式去除部分富文本的代碼示例
使用正則表達式去除富文本
最近在工作的時候,遇到一個需求,要把富文本給去除,說實話這個功能還是很簡單的,但是我遇到的問題又沒有那么簡單……
去除部分富文本標記
我們有一段字符串,有很多的富文本標記,如:<size=60></size>
、<color=#F0F0F0></size>
等等。但是我們并不需要去除所有的富文本標記,因為我需要保留顏色的富文本標記,只去除字體大小的富文本標記,而且字符串里富文本的字體大小標記還有各種大小,非常令人頭痛。
在網(wǎng)上也能找到各種去除富文本的代碼,但是很多基本都是全部標記都去除的,而且是靠找<
和>
的位置來去除的,那如果我們的字符串里本身就帶<
和>
,那么括號里的文字也會被去除掉……
后來主程叫我去研究一下正則表達式,一行代碼就解決了。
代碼
private string RemoveRichTextSize(string sourceText) { sourceText = Regex.Replace(sourceText, @"(<size=(\d+)>|</size>)", ""); return sourceText; }
其實很簡單,就使用Regex.Replace()
函數(shù)就行了,最主要的是要了解正則表達式的使用。
Regex.Replace(原本的文本, 匹配規(guī)則, 替換的內(nèi)容);
Regex.Replace函數(shù)需要輸入三個參數(shù),接下來簡單說明
因為我需要把正則的內(nèi)容剔除,所以替換的內(nèi)容就是""
,這樣就做到把內(nèi)容去掉了
匹配規(guī)則里@"(A|B)"
代表了匹配A或B</size>
就是富文本的尾部
而富文本的頭部<size=(\d+)>
就是難點了\d
代表了匹配一個數(shù)字字符[0-9]
,(\d+)
代表了匹配一個以上的數(shù)字
通過修改匹配規(guī)則,你也可以做到只去除富文本的顏色屬性或者斜體屬性等等。
在寫這個功能的時候,參考了這位大佬的文章,里面也有常用的正則匹配規(guī)則,可以參考使用。
總結(jié)
到此這篇關(guān)于C# Unity使用正則表達式去除部分富文本的文章就介紹到這了,更多相關(guān)C# Unity正則去除部分富文本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Avalonia封裝實現(xiàn)指定組件允許拖動的工具類
這篇文章主要為大家詳細介紹了Avalonia如何封裝實現(xiàn)指定組件允許拖動的工具類,文中的示例代碼講解詳細,感興趣的小伙伴快跟隨小編一起來學習學習吧2023-03-03C#利用PrintDocument定制打印單據(jù)的小例子
這篇文章主要給大家介紹了關(guān)于C#利用PrintDocument定制打印單據(jù)的小例子,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C#具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-05-05C#中按引用傳遞與按值傳遞的區(qū)別,以及ref與out關(guān)鍵字的用法詳解
以下是對C#中按引用傳遞與按值傳遞的區(qū)別,以及ref與out關(guān)鍵字的用法進行了詳細的分析介紹,需要的朋友可以過來參考下2013-07-07C#如何正確實現(xiàn)一個自定義異常Exception
這篇文章主要為大家詳細介紹了C#如何正確實現(xiàn)一個自定義異常Exception,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下2023-09-09