【发布时间】:2020-06-23 01:02:03
【问题描述】:
我试图在字符串中的特殊字符之前和之后添加一个空格,但前提是该特殊字符位于数字之间。
例如:
1/2 应该变成 1 / 2
1/2/3 应该变成 1 / 2 / 3
4,6 应该变成 4 , 6
8a,b 将保持 8a,b
8,9a 将变为 8 , 9a
1,6,a,c 会变成 1 , 6,a,c
等等等等。
我知道您可以使用以下代码将特殊字符替换为其他字符,但我不确定如何替换相同的特殊字符和前后的空格。
Regex.Replace(your_String, @"[^0-9a-zA-Z]+", "Something Else");
实现此目的最有效的方法是什么?
【问题讨论】:
-
视情况而定。如果您认为特殊字符是已知列表,还是只是
,和/这两个字符? -
@Franck 嘿,所以在我的情况下,基本上非字母和非数字将被视为特殊字符。
-
期待大量文本或不是您最简单的解决方案仍然在缓冲区(对于非常大的字符串)或直接在整个数组(对于较小的字符串)上循环,并且只读取每个字符的字符并检查它们是否字节值落在 0-9 a-Z 的范围内,这只是 1 if 语句并通过添加或不添加空格来复制
StringBuilder中的内容。 -
@Franck Ah - 希望避免这种情况:(。