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