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”)调用该函数