C# 用双反斜杠替换反斜杠、正斜杠和双正斜杠

C# 用双反斜杠替换反斜杠、正斜杠和双正斜杠,c#,regex,string,C#,Regex,String,如果我有以下字符串 “/test\\dso\dsa” 如何使用正则表达式将其转换为 “\\test\\dso\\dsa” 如果我尝试像 Regex.Replace (FilePath, @"/|\\", @"\\"); 它在中间创建了一个混乱(因为它添加了 \代码>两次,因此添加了 < >。如何使它一次只与一个反斜杠匹配?您可以试试这个 Regex.Replace (FilePath, @"/|\\{1,2}", "\\\\"); \{1,2}将匹配一个或两个反斜杠 您可以使用以下代码:

如果我有以下字符串

“/test\\dso\dsa”

如何使用正则表达式将其转换为

“\\test\\dso\\dsa”

如果我尝试像

Regex.Replace (FilePath, @"/|\\", @"\\");
<>它在中间创建了一个混乱(因为它添加了<代码> \代码>两次,因此添加了<代码> < <代码> >。如何使它一次只与一个反斜杠匹配?

您可以试试这个

Regex.Replace (FilePath, @"/|\\{1,2}", "\\\\");
\{1,2}
将匹配一个或两个反斜杠


您可以使用以下代码:

var FilePath = @"/test\\dso\dsa";
var myres = Regex.Replace(FilePath, @"[\\/]+", @"\\");
输出:

\\test\\dso\\dsa
正则表达式
[\\/]+
匹配一个或多个
\
/
字符,然后用两个
\
符号替换


@“/|\\”
regex的问题在于它逐个匹配每个
\
/
,从而导致替换的数量超过您的需要。此外,使用单独的符号作为替代方案也不是一个好主意,因为涉及到更多的回溯。最佳做法是将它们添加到字符类
[…]

我认为输入中的
\d
将被视为转义序列。字符串是否声明为逐字字符串文字,例如
var s=@”/test\\dso\dsa“
?@stribizev-Yes。使用
(@“/test\\dso\dsa”)调用该函数