将单反斜杠替换为双反斜杠
本文关键字:替换 单反斜 | 更新日期: 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"