簡體   English   中英

vim:匹配正則表達式

[英]vim :match regexp

我想匹配一個無效的 C/C++ 行,這就是為什么我使用下面的正則表達式

/^[^#].+(.+[^;(){}])$/

使用 cmd :match errorMsg : 和我的常規驗證一些簡單的條件:

  1. 沒有#開頭(預處理器 cmds)
  2. 不以;,(),{}結尾

將被視為不正確的行

但它沒有任何幫助

您可以使用

/\v^[^#].*$([;(){}])@<!/

詳情

  • \\v - 避免過度轉義特殊模式字符的非常神奇的模式
  • ^ - 一行的開始
  • [^#] - 除#以外的任何字符(不匹配 Vim 中的換行符)
  • .*$ - 行的其余部分,零個或多個字符 ( .* ) 和行尾 ( $ )
  • ([;(){}])@<! -消極的回顧,不; , ( , ) , {}允許在字符串的末尾。

這是這個模式演示(轉換為 PCRE 只是為了演示目的)。

它適用於 Vim:

在此處輸入圖片說明

文件內容如

abc match me
abc no match;
match
# def no MATCH{}
}
{
(
)
;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM