Unity中如何获取TMPro Text组件去除标记标签后的文本值?
移除TMPro富文本标签获取纯文本的方法
不用挨个写replace,直接用这两种靠谱方案就能搞定动态变化的标签:
方案1:TMPro官方自带工具
TMPro专门提供了移除富文本标签的方法,能自动处理所有支持的标签类型,不管是动态生成的<b>、<color>还是其他标签都适用:
using TMPro; public string GetPureText(TMP_Text tmproText) { return TMP_TextParsingUtilities.StripRichTextTags(tmproText.text); }
方案2:正则表达式批量移除
如果需要自己控制逻辑,用正则匹配所有尖括号包裹的内容,直接替换为空字符串即可,完美适配动态变化的标签:
using System.Text.RegularExpressions; using TMPro; public string GetPureTextByRegex(TMP_Text tmproText) { // 匹配所有<开头、>结尾的标签内容,替换为空 return Regex.Replace(tmproText.text, @"<[^>]+>", string.Empty); }
注意:如果文本里有正常的尖括号(非标签),TMPro会自动转义成<和>,正则不会误删这些转义后的内容,放心使用。
内容的提问来源于stack exchange,提问作者Masa
相关产品推荐
相关产品推荐

