在河里抓鱼的熊

抓鱼杂谈

Archive for the ‘正则表达式’ tag

VIM查找时需要转义的字符

without comments

首先,VIM中在查找时使用正则表达式进行。但是,不能将平常的正则表达式直接搬过来使用。原因是标准正则中有些符号与VIM中的一些固有符号有冲突,这时就需要对这些符号转义,才能表示这个符号表示正则表达式的操作符,否则表示VIM操作符或者字符本意。

对于这些将在VIM Search时需要转义的字符总结如下:

  1. |
  2. &
  3. ()
  4. +
  5. =
  6. ?
  7. \{n,m}  n到m个,按最多匹配
  8. \{-n,m}  n到m个,按最少匹配
  9. <>  匹配单词边缘

Written by qianxiong

September 16th, 2010 at 10:37 am

Posted in 经验之谈

Tagged with , ,

正则与中文

without comments

在正则表达式中,拉丁字符的匹配很是方便,可是如果要匹配的内容中有中文或者中文标点符号就很恼火。今天特意对中文码表做了细致的了解,分享给大家。
按照Unicode Block分别介绍:

  1. Basic Latin(\u0020-\u007E):
    这些是基本的可见ASCII码
  2. HalfWidth and FullWidth Forms(\uFF01-\uFFEE)
    全角符号(\uFF01-\uFF60):包含了大部分中文输入法所输入的符号。
    半角符号(\uFF61-\uFFEE):
  3. Genaral Punctuation(\u2000-\u206F):
    包含减号、破折号、省略号、单双引号、百分号、千分号、章节符号、分秒符号
  4. CJK Synmbols and Punctuation(\u3000-\u303F):
    常见的有下列符号《》「」『』【】〖〗
  5. CJK Unified Ideograph(\u4E00-\u9FFF):
    包含所有的中文汉字。因为从9FCC到最后都未定义,所以正则表达式中直接验证\u4E00-\u9FCB即可。有些朋友在介绍中文的正则匹配时说是从\u4E00-\u9FA5,但是在9FA5之后还有30个可见字,8个不可识别字(已分配,但无汉字实现),虽然最后有52个编码未分配,但起码也要在9FC3处结束,而不是9FA5。
  6. CJK Compatibility Ideographs(\uF900-\uFAFF):
    另一块汉字区域。FADA-FAFF未分配,所以仅在\uF900-\uFAD9有汉字。不过,这一区域的汉字在CJK Unified Ideograph块中都存在,不知道当初卫生么会分配这么一小块来放汉字!

Written by qianxiong

July 1st, 2010 at 1:21 pm

Posted in 技术

Tagged with , ,