想计算不包括富文本格式的字符串中的字符数? (C#)

Would like to count the characters in a string excluding rich text formatting? (C#)

平台:Unity 2018.2.20f1 语言:C# .Net 4.x

场景

我有一个字符串,我将应用于在 Unity 中呈现的文本网格。此渲染管道支持富文本编辑。 http://digitalnativestudios.com/textmeshpro/docs/rich-text/

请求

因此,当我提供一个字符串时,我想知道字符数,这将排除用于富文本格式的字符。

例子

string _value = "We are <b><i>definitely not</i></b> amused";
// Character count should be 29 instead of 43

那么最好的实现方式是什么?是否有 module/resources 在线帮助我提取计数?

谢谢, 卡尔斯嫩

您可以设置它如何替换格式块。

string CountNumber = Regex.Replace(richtextbox, "<.*?>", String.Empty);
MessageBox.Show(CountNumber.Length);

解决方案

对于非 unity 开发者

据我了解,您将不得不使用正则表达式来解决它。 @Wubber && @Yakov 之类的建议。 Another answer with suggested by Wubber

Unity 开发者使用 TMPro.TextMeshProUGUI

TMPro.TMP_InputField myInputField;
TMPro.TextMeshProUGUI InputTextBoxField;

private void onValueChangedInMyInputField(string _value)
{
  int _charCount = InputTextBoxField.GetParsedText().Length;
  int _inputFieldCount = myInputField.text.Length;
  // _charCount is the number excluding the rich text content 
  // _inputFieldCount is the number inclusive of the rich text content
}

谢谢大家的宝贵时间。干杯。