正则表达式生成未转义字符串的异常
本文关键字:字符串 异常 转义字符 转义 正则表达式 | 更新日期: 2023-09-27 17:53:22
我试图做一个简单的程序来验证字符串对正则表达式,但我得到一个异常。下面是我的代码:
String exp = "^''d''d*$";
Regex r = new Regex(Regex.Unescape(exp));
if (r.IsMatch(""))
{
Response.Write("strings matches");
}
else
{
Response.Write("strings does not matches");
}
但是这段代码产生了异常:
exception.Message = "parsing '"^''d''d*$'" - Unrecognized escape sequence ''d."
exception.GetType() ={Name = "ArgumentException" FullName = "System.ArgumentException"} System.Type {System.RuntimeType}
谁能告诉我为什么会这样?
这正是文档要用到的Regex。Unescape说。当遇到无法转换的转义序列(如'd
)时,它抛出一个Argument异常。
Regex.Unescape
方法将字符串转义序列转换为适当的字符本身,例如'n
转换为0x0A
。
这里不需要使用Regex.Unescape
方法
String exp = "^''d''d*$";
Regex r = new Regex(exp);
就可以了。
或逐字版本:
String exp = @"^'d'd*$";
Regex r = new Regex(exp);
使用@
使字符串不像这样使用转义字符'
String exp = @"^''d''d*$";