Como cortar e remover caracteres das cadeias de caracteres C#
Se estiver analisando as palavras individuais de uma sentença, você poderá encontrar palavras com espaços em branco em ambas as extremidades da palavra.
Nessa situação, você pode usar um dos métodos de corte na classe System.String para remover qualquer número de espaços ou de outros caracteres de uma posição especificada na cadeia de caracteres.
A tabela a seguir descreve os métodos de corte disponíveis.
https://docs.microsoft.com/pt-br/dotnet/standard/base-types/trimming
public static string StripIllegalXMLChars(string xmlText)
{
//Remove illegal character sequences
string tmpContents = xmlText;
//string pattern = String.Empty;
//switch (XMLVersion)
//{
// case "1.0":
// pattern = @"&#x((10?|[2-F])FFF[EF]|FDD[0-9A-F]|7F|8[0-46-9A-F]9[0-9A-F]);";
// break;
// case "1.1":
// pattern = @"&#x((10?|[2-F])FFF[EF]|FDD[0-9A-F]|[19][0-9A-F]|7F|8[0-46-9A-F]|0?[1-8BCEF]);";
// break;
// default:
// throw new Exception("Error: Invalid XML Version!");
//}
String pattern = @"&#x((10?|[2-F])FFF[EF]|FDD[0-9A-F]|[19][0-9A-F]|7F|8[0-46-9A-F]|0?[1-8BCEF]);";
/*TESTES
StringBuilder buffer = new StringBuilder(tmpContents.Length); //Max length
foreach (char ch in tmpContents)
{
UInt16 num = Convert.ToUInt16(ch);//In .NET, chars are UTF-16
//The basic characters have the same code points as ASCII, and the extended characters are bigger
if ((num >= 32u) && (num <= 126u)) buffer.Append(ch);
}
tmpContents = buffer.ToString();
*/
Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
if (regex.IsMatch(tmpContents))
{
tmpContents = regex.Replace(tmpContents, String.Empty);
}
return tmpContents;
}