c#中的转义字符
本文关键字:转义字符 | 更新日期: 2023-09-27 17:54:15
程序中的转义序列卡住了。
我在单引号中从xml文件中获得输入。
所以在string中可以包含任何转义序列
所以我想做的是考虑转义字符后的下一个字符为正常字符。
Example: ''abc''t'
Output: 'abc't'
因此我创建了正则表达式,也就是:
Regex.Replace(SearchString, @"''?(?<Character>)", "${Character}");
但是它替换了所有转义字符并给出输出:
abct
请告诉我怎么做?
正则表达式中的命名组不匹配任何内容,因此它的操作与Replace(@"'", "")
相同。
匹配组中的一个字符:
SearchString = Regex.Replace(SearchString, @"''(.)", "$1");
基本上,您需要逐个字符解析字符串。伪代码:
Loop through all characters c:
If c is escape character:
Read next character and do something special ('t is tab, '' is backslash, ...)
Else:
Copy character to output
试试这个:
Regex.Replace(SearchString, @"''(?<Character>[^''])", "${Character}");
如果你喜欢呢:
SearchString = SearchString.Replace(@"''", @"'");
它会给出:
'abc't
这里转义的't
现在被视为"制表符"。