VIM中使用正則匹配中文

jopen 10年前發布 | 22K 次閱讀 Vim

VIM是個很強大的文本編輯器,但是如何使用正則匹配中文似乎會給一些不太了解VIM的人造成小小的麻煩

眾所周知,使用JS的正則對中文進行驗證時,可以使用:

/[\u4e00-\u9fa5]+/.test('中文')



但是在VIM中再使用這個正則時,則會提示無法找到匹配項

E384: 已查找到文件開頭(結尾)仍找不到[\u4e00-\u9fa5]+



實際上,VIM的在進行搜索時,有一個'magic'設置,當magic設置為不同的情況時(默認的設置是magic),正則表達式的寫法是不同的:

  • magic: 除了`^.*$`之外所有的字符都需要加反斜杠
  • nomagic: 除了`^$`之外所有的字符都需要加反斜杠
  • very magic: 任何字符都不需要加反斜杠
  • very nomagic: 任何字體都需要加反斜杠

可以在正則表達式中指定使用哪種magic

  • \m: magic
  • \M: nomagic
  • \v: very magic
  • \V: very nomagic
  • </ul>

    例如:

    \v[\u4e00-\u9fa5]+ " 查找中文



    所以之前的問題出在哪里也就一目了然了:

    [\u4e00-\u9fa5]\+  " 默認為magic, `+`需要加反斜杠



    對于多字節文字,VIM除了\u之外,還可以使用如\U1234表示小于0xffffffff的文字。

    來自:http://my.oschina.net/hotleave/blog/341500

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!