如何才能最好地将双反斜杠的实例转换为字符串中的单个反斜杠,但是删除任何出现的单个反斜杠?
所以这个:
\|Testing|ABC:1234\\1000-1\|
应转换为:
|Testing|ABC:1234\1000-1|
理想情况下,我想避免将'\'临时替换为另一个角色。使用.NET或正则表达式的解决方案是首选。
答案 0 :(得分:5)
Regex.Replace(input, @"\\(.|$)", "$1");
[编辑:模式与OP中指定的所有可能情况都不匹配。感谢您的建议,GONeale和Alan M.]
答案 1 :(得分:0)
感谢您对Princess的回应,
然而,在其他一些情况下,它失败了。我正在使用此输入:
Regex.Replace(@"\L\\A\", @"\\(.)", "$1")
它正在返回:L\A\
什么时候应该返回L\A
。我知道你正在寻找任何其他字符“。”,但不知道如何解决它,因为有时候不会有其他字符。
我设法在C#中整理了一个有效(但略显冗长)的方法:
for (int i = 0; i < text.Length; i++)
{
if (text[i] == '\\' && (i + 1 <= text.Length && text[i + 1] == '\\'))
newText += '\\';
else if (text[i] == '\\')
newText += string.Empty;
else
newText += text[i];
}
但是更喜欢更优雅的东西。