当前位置: 首页 > 知识库问答 >
问题:

C#regex用于删除包含多种不同语言、unicode字母的文本中的不可打印字符和控制字符

夏侯腾
2023-03-14

我将非常感谢您在这方面的帮助,因为我不知道该使用哪一个字符范围,或者我在Ruby中找到了像[[:cntrl:]]这样的字符类?

通过non printable,我的意思是删除ie输出中没有显示的所有字符,当打印输入字符串时。请注意,我寻找一个C#正则表达式,我的代码没有问题

共有1个答案

祁俊喆
2023-03-14

可以使用

s = Regex.Replace(s, @"\p{C}+", string.Empty);

\p{C}Unicode类别类匹配所有控制字符,甚至是ASCII表之外的控制字符,因为在.NET中,Unicode类别类默认是Unicode识别的。

将其分解为子类别

    null
 类似资料:
  • 使用getID3,有时标签中有特殊字符(带问号的小黑钻),但我似乎无法删除它们 我尝试了这里的一切 PHP:如何删除字符串中所有不可打印的字符? 在数据库(phpMyAdmin)中,当打印出来时,它们显示为??在数据的开头。 问题是,我根本不希望这些字符出现在数据库中(无论它们是否正确显示或显示为问号) 但是,我尝试过的所有代码都不会删除PHP中的这些特殊字符

  • 问题内容: 我得到的用户输入包括非ASCII字符和不可打印的字符,例如 例如: 所需的输出: 使用Java删除它们的最佳方法是什么? 我尝试了以下操作,但似乎不起作用 输出量 问题答案: 您的要求不清楚。Java 中的所有字符都是Unicode字符,因此,如果将其删除,将留下一个空字符串。我假设您的意思是您要删除任何非ASCII,不可打印的字符。 此处, 代表可打印ASCII字符的POSIX字符类

  • 我想我需要删除字符0-31和127。 是否有一个函数或一段代码来高效地做到这一点?

  • 问题内容: 我想我需要删除0-31和127字符, 是否有功能或一段代码可以有效地做到这一点。 问题答案: 7位ASCII? 如果您的Tardis刚好在1963年登陆,并且您只想要7位可打印的ASCII字符,则可以使用以下方法从0-31和127-255中删除所有内容: 它匹配0-31、127-255范围内的任何内容并将其删除。 8位扩展ASCII? 您掉进了热水浴缸计时机,而您又回到了八十年代。如果

  • 被删除,因此也是另一个匹配字符串的一部分,不确定这是由于错误的regEx还是反字符类的错误应用。

  • 本文向大家介绍C语言中字符和字符串处理(ANSI字符和Unicode字符),包括了C语言中字符和字符串处理(ANSI字符和Unicode字符)的使用技巧和注意事项,需要的朋友参考一下 我们知道,C语言用char数据类型表示一个8位的ANSI字符,默认在代码中声明一个字符串时,C编译器会把字符串中的字符转换成由8位char数据类型构成的一个数组: Microsoft的C/C++编译器定义了一个内建的