替换(解析""模式结束时不合法)
本文关键字: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''''"