c# – 在.NET Regex中匹配扩展的ASCII字符
发布时间:2020-12-15 22:12:00 所属栏目:百科 来源:网络整理
导读:我正在编写一个.NET正则表达式,它需要匹配除控制字符之外的所有ASCII和扩展ASCII字符. 为此,我查阅了ASCII表,似乎所有这些字符都具有x20到xFF的ASCII编码. 所以我想 [x20-xFF] 应该能够匹配我需要的所有角色.但是,实际上,某些角色可以匹配,而其他角色则不
我正在编写一个.NET正则表达式,它需要匹配除控制字符之外的所有ASCII和扩展ASCII字符.
为此,我查阅了ASCII表,似乎所有这些字符都具有x20到xFF的ASCII编码. 所以我想
应该能够匹配我需要的所有角色.但是,实际上,某些角色可以匹配,而其他角色则不能.例如,如果使用在线工具http://regexhero.net/tester/进行测试,或者编写一个简单的C#程序,您会发现某些字符如“?”(xE7)可以匹配,但某些字符如“?”(x9C)则不能. 有谁知道为什么我的正则表达式不起作用? 谢谢, 解决方法
我试图重现您的错误,并发现您的代码没有错:
String pattern = @"[x20-xFF]"; // All ANSII for (Char ch = ' '; ch <= 255; ++ch) if (!Regex.IsMatch(ch.ToString(),pattern)) Console.Write("Failed!"); // All non-ANSII for (Char ch = (Char)256; ch < Char.MaxValue; ++ch) if (Regex.IsMatch(ch.ToString(),pattern)) Console.Write("Failed!"); 然后我检查了你的样品: ((int)'?').ToString("X2"); // <- returns E7,OK ((int)'?').ToString("X2"); // <- returns 153 NOT x9C 注意,’ – ‘(x153)实际上在[0x20..0xFF]之外,这就是匹配返回false的原因.所以我猜你有一个错字 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |