知识大全 .NET开发正则表达式中BUG故障解析

Posted 字符

篇首语:明天的希望,让我们忘了今天的痛苦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .NET开发正则表达式中BUG故障解析相关的知识,希望对你有一定的参考价值。

.NET开发正则表达式中BUG故障解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  又发现了一个 net 的bug!

  最近在使用正则表达式的时候发现 在忽略大小写的时候 匹配值从 xff 到 xffff 之间的所有字符 正则表达式竟然也能匹配两个 ASCII 字符 i(code: x ) 和 I(code: x );但是仍然不能匹配其他的 ASCII 字母和数字

  比如以下的代码就是用来测试用正则表达式匹配从 xff 到 xffff 的字符 而值范围在 到 xfe 的所有字符是不能被匹配的

   Regex regex = new Regex(@ [/u FF /uFFFF]+ );   // The characters whoes value are smaller than xff are not expected to be matched   for (int i = ; i < xff; i++)   string s = new string(new char[] (char)i );   Debug Assert(   !regex IsMatch(s)   string Format( The character was not expected to be matched: x :X! i));      // However the characters whoes value are greater than xfe are expected to be matched   for (int i = xff; i <= xffff; i++)   string s = new string(new char[] (char)i );   Debug Assert(   regex IsMatch(s)   string Format( The character was expected to be matched: x :X! i));   

  这时的运行结果是正常的 没有任何的断言错误出现

  然而当使用忽略大小写的匹配模式时 结果就不一样了 将上面代码中的第一行改成

   Regex regex = new Regex(@ [/u FF /uFFFF]+ RegexOptions IgnoreCase);

  程序运行的时候就会有两处断言错误 它们分别是字符值为 和 也就是小写字母 i 和大写字母 I

  这个 bug 非常奇怪 别的字符都很正常!而且用 javascript 脚本在 IE (版本是 )里面运行也同样有这么 bug 存在(比如下面这段代码) 然而在 Firefox 中运行就是没有问题的 还是 Firefox 好啊 呵呵!

   var re = /[/u FF /uFFFF]+/;   // var re = /[/u FF /uFFFF]+/i;   for(var i= ; i< xff; i++)   var s = String fromCharCode( i );   if ( re test(s) )   alert( Should not be matched: + i + ! );         for(var i= xff; i<= xffff; i++)   var s = String fromCharCode( i );   if ( !re test(s) )   alert( Should be matched: + i + ! );       cha138/Article/program/net/201311/14988

相关参考

知识大全 .NET开发中正则表达式中BUG一例

.NET开发中正则表达式中BUG一例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  又发现了一个

知识大全 .NET开发时使用正则表达式的BUG

.NET开发时使用正则表达式的BUG  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  又发现了一个

知识大全 在开发中.net类库中发送电子邮件[1]

  发送电子邮件是许多需要用户注册的网站的通用功能通过正则表达式我们可以过滤掉不符合电子邮件格式的输入但是仍没有办法确保用户填写的电子邮件地址一定是他本人真实有效的电子邮件地址通常验证电子邮件真实有效

知识大全 php小经验:解析preg

  正则表达式在PHP中的应用在PHP应用中正则表达式主要用于•正则匹配根据正则表达式匹配相应的内容•正则替换根据正则表达式匹配内容并替换•正则分割根据正则表达式分割字符串在PHP中有两类正则表达式函

知识大全 使用.NET正则表达式区分中英文

使用.NET正则表达式区分中英文  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要本文提供一个

知识大全 .NET下正则表达式应用四例[1]

.NET下正则表达式应用四例[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  确认有效电子邮

知识大全 .NET下正则表达式应用四例[2]

.NET下正则表达式应用四例[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  C#代码示例S

知识大全 ASP.NET使用正则表达式屏蔽垃圾信息

ASP.NET使用正则表达式屏蔽垃圾信息  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  找资料看

知识大全 完全解读C#.NET中的正则表达式

完全解读C#.NET中的正则表达式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  多少年来许多的

知识大全 全方位探讨.NET Framework正则表达式

全方位探讨.NETFramework正则表达式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  正