首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex.Unescape : ArgumentException

Regex.Unescape : ArgumentException
EN

Stack Overflow用户
提问于 2014-09-05 16:44:02
回答 1查看 843关注 0票数 1

我已经为这个问题挣扎了很长一段时间,谷歌无法提供太多的帮助。我有包含“有效”和“无效”转义序列的字符串,如

代码语言:javascript
复制
str1 = "love\u007c\u000B\n";  // Valid escape sequences
str2 = "title=\x22\t\n";     // Invalid escape sequences. Insufficient hexadecimal digits
str3 = "\love\007c\u000B\n"; // Invalid escape sequences. Unrecognized escape sequences.    

当我使用Regex.Unescape(str1);方法时,我得到了我想要的结果,即"love|"

使用Regex.Unescape(str2);,我得到了一个ArgumentException: Insufficient hexadecimal digits,但实际上我要寻找的是title=\x22

使用Regex.Unescape(str3);,我得到了一个ArgumentException: Unrecognized escape sequence \l,但实际上我要寻找的是\love|

我的问题是,如何处理既包含有效转义序列又包含无效转义序列的字符串,使任何无效转义序列都被忽略,而有效序列被替换为相应的字符文字。任何代码片段或链接都会非常有用。

EN

回答 1

Stack Overflow用户

发布于 2014-09-05 19:08:51

C#中有regular string文字和verbatim string文字。我猜根据您的经验,常规字符串文字并不是预期的表示形式。在引用的字符串之前使用@符号将显示逐字文字类型:

代码语言:javascript
复制
string str1 = @"love\u007c\u000B\n";
string str2 = @"title=\x22\t\n";
string str3 = @"\love\007c\u000B\n";

请看一看MSDN上的简短字符串文字解释 --它应该说明文字的不同之处,以及如何/在哪里使用每一种风味。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25690471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档