将单反斜杠替换为双反斜杠

本文关键字:替换 单反斜 | 更新日期: 2023-09-27 17:57:23

看起来很简单,对吧?我不知道。

这是我正在尝试的代码:

input = Regex.Replace(input, "''", "''''''");

但是,我收到一个错误,

参数异常未处理 - 解析 "''" - 模式末尾的非法 ''。

我该怎么做?

将单反斜杠替换为双反斜杠

第一个应该是"''''",而不是"''"。它的工作原理是这样的:

  • 你已经写了"''".
  • 这将转换为字符串中的序列'
  • 然后正则表达式引擎读取此内容,将其转换为反斜杠,它不会转义任何内容,因此它会抛出错误。
使用

正则表达式,使用"逐字字符串"要容易得多。在这种情况下,逐字字符串将@"''" 。使用逐字字符串时,您只需要考虑正则表达式引擎的转义,因为反斜杠按字面意思处理。第二个字符串也将@"''",因为它不会被正则表达式引擎解释。

如果要将一个反斜杠替换为两个反斜杠,则通过使用 @"..." 作为字符串文本(也称为逐字字符串)的格式来消除正则表达式中的一个转义级别可能更清楚。这样就更容易看出,

string output = Regex.Replace(input, @"''", @"''");

是从'''的替代品。

我知道

现在帮助你为时已晚,也许其他人会从中受益。无论如何,这对我有用:

text = text.Replace(@"'",@"''");

我发现它更简单。

干杯!

 var result = Regex.Replace(@"afd'tas'asfd'", @"''", @"''");

第一个参数是字符串 '''',在正则表达式中为 ''。
第二个参数不是由正则表达式处理的,所以在替换时会按原样放置。

如果您打算稍后在正则表达式模式中使用输入,最好使用 Regex.Encode。

input = Regex.Escape(input);

我已经尝试了所有这些例子,但没有成功。我有一个"//",我不想改变它。我只需要更改"/"

这个正则表达式帮助了我:

  • 字符串 myString = "https://example.com/example/example/example";

  • 字符串结果 = Regex.Replace(myString, @"(?<!/)/(?!/)", "//");

  • 我得到了 - "https://example.com//example//example//example"