我将不胜感激你的帮助,因为我不知道要使用哪个范围的字符,或者是否有像 [[:cntrl:]] 这样的字符类,我在 ruby 中找到了?
通过不可打印,我的意思是在打印输入字符串时删除 ie 输出中未显示的所有字符。请注意,我寻找 C# 正则表达式,我的代码没有问题
您可以使用以下命令删除所有控制字符和其他不可打印字符
s = Regex.Replace(s, @"\p{C}+", string.Empty);
The \p{C}
Unicode 类别类匹配所有控制字符,甚至是 ASCII 表之外的控制字符,因为在 .NET 中,Unicode 类别类默认支持 Unicode。
将其细分为子类别
- 仅匹配基本控制字符你可以使用
\p{Cc}+
,参见 65 个字符其他,控制统一码类别。它等于[\u0000-\u0008\u000E-\u001F\u007F-\u0084\u0086-\u009F \u0009-\u000D \u0085]+
regex.
- 仅匹配161 其他格式 chars包括众所周知的软连字符(
\u00AD
), 零宽度空间 (\u200B
)、零宽度非连接符 (\u200C
)、零宽度连接符 (\u200D
),从左到右标记(\u200E
) 和从右到左标记 (\u200F
) use \p{Cf}+
。包括星体位置代码点在内的等效项是(?:[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC38]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F])+
regex.
- 匹配137,468 其他私人使用控制代码点你可以使用
\p{Co}+
,或其等价物,包括星体位置代码点,(?:[\uE000-\uF8FF]|[\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uDBBF\uDBFF][\uDC00-\uDFFD])+
.
- 匹配2,048 其他,代孕代码点包括一些表情符号,您可以使用
\p{Cs}+
, or [\uD800-\uDFFF]+
regex.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)