一个不工作的Regular Expression

今天在看一本.Net的书,一边做着书上的code samples。为了省事儿有些很长的代码就直接从电子书上拷贝过来粘贴到编辑器里面,但是有一段代码中的regular expression就是不工作。仔细瞧了一遍,也看不出什么问题,没办法只好手动输入试试,结果就正常了。于是上下的细细比较了一番,才发现原来这段regular expression中的管道符号是“│”而非“|”。写了段测试看看
Console.WriteLine(
    System.Text.ASCIIEncoding.ASCII.GetBytes(
"|")[0]);
Console.WriteLine(
    System.Text.ASCIIEncoding.ASCII.GetBytes(
" |")[0]);

原来在英文电子书中的管道符号“│”ASCII内码是63,而在我们从键盘上输入的“|”ASCII内码是124。其实我知道ASCII中63是问号(?),看来这是一个双字节的符号。于是取来Unicode内码一看原来是“\u2502”.

在英文书的字体下面两个符号几乎宽度一模一样,真是肉眼很难分辨呀!

posted on 2004-09-16 22:20  niuke  阅读(256)  评论(0)    收藏  举报

导航