【发布时间】:2015-05-06 23:35:51
【问题描述】:
我正在编写一个 .NET 正则表达式,它需要匹配除控制字符之外的所有 ASCII 和扩展 ASCII 字符。
为此,我查阅了 ASCII 表,似乎所有这些字符都有 x20 到 xFF 的 ASCII 编码。
所以我想
[\x20-\xFF]
应该能够匹配我需要的所有字符。然而,实际上,有些字符可以匹配,而有些则不能。比如用在线工具http://regexhero.net/tester/测试,或者写一个简单的C#程序,你会发现有些字符如“ç”(xE7)可以匹配,但有些字符如“œ”(x9C)不能。
有人知道为什么正则表达式不起作用吗?
【问题讨论】:
-
我已经从 questuin 中复制了您的
œ符号并通过(int) 'œ检查它,它显示339 (0x153)超出范围。 -
“Extended ASCII”是上个世纪的一个错误,造成了代码页灾难。 .NET 使用 Unicode。你将不得不重现灾难。
标签: c# regex ascii extended-ascii