如果我有以下字符串:
"/test\\dso\dsa"
如何使用正则表达式将其转换为:
"\\test\\dso\\dsa"
?
如果尝试类似于以下代码:
Regex.Replace (FilePath, @"/|\\", @"\\");
在中间创建了一堆混乱(因为它两次添加了\\
,从而添加了\\\\\\\\
)。我该如何使其仅匹配一个反斜杠?
var FilePath = @"/test\\dso\dsa";
var myres = Regex.Replace(FilePath, @"[\\/]+", @"\\");
输出:
\\test\\dso\\dsa
[\\/]+
匹配1个或多个\
或/
字符,然后用两个\
符号替换它们。@"/|\\"
正则表达式的问题在于它一个一个地匹配每个\
或/
,因此会导致比需要更多的替换。而且,使用单独的符号作为备选项并不是一个好主意,因为这会涉及更多的回溯。最佳实践是将它们添加到字符类[...]
中。
\d
会被视为转义序列。 - Avinash Rajvar s = @"/test\\dso\dsa"
? - Wiktor Stribiżew(@"/test\\dso\dsa")
调用。 - MKII