替换(解析""模式结束时不合法)

本文关键字:quot 不合法 结束 模式 替换 解析 | 更新日期: 2023-09-27 18:12:17

我有一个c#小程序,所以我在我的程序

wordSearch = "T:''"
wordReplace = "T:''Gestion''"
content = Regex.Replace(content, wordSearch, wordReplace);

但是不工作。错误是:

parsing "T:'" - illegal ' at end of pattern.

你知道吗?

(添加)

对不起!也许我没有解释清楚。所以我再试一次。

我做了一个接受字符串作为输入的表单,但是如果这个字符串是"T:'",程序接受"T:'"。因此,我将这个字符串保存在变量"workShearch"中。

在这个变量之后使用in:

content = Regex.Replace(content, Regex.Escape(wordSearch), Regex.Escape(wordReplace));

但是这一行包含一个错误,因为在这种情况下wordSearch是"T:'",程序抛出一个异常,像这样:

The error in parsing "T:'" - illegal ' at end of pattern.

谢谢!

替换(解析""模式结束时不合法)

您应该按照模式转义'。要么使用"T:''''",要么使用逐字字符串字面值(逐字字符串的优点是不处理转义序列,这使其易于编写):

var wordSearch = @"T:''";
var wordReplace = @"T:'Gestion'";
content = Regex.Replace(content, wordSearch, wordReplace);

再次转义" ' "

wordSearch = "T:''''"

更优雅的解决方案是在字符串

前面使用@修饰符
wordSearch = @"T:''"

'是转义字符,如果你想有'',你应该输入''''或者将@放在字符串前面,它将认为整个字符串是纯文本

wordSearch = @"T:''"
wordReplace = @"T:''Gestion''"
// or 
wordSearch = "T:''''"
wordReplace = "T:''''Gestion''''"