正則表達式里”不包含”及一些特殊查找

背景

我經常使用sublime去處理很多文件, 利用強大的正則表達式, 將一些日志以及excel文本進行格式化為特定內容.
最近經常遇到只保留我需要的行, 其他行刪除掉. 也就需要用到正則中的不等于, 找了好幾次, 覺得還是有必要記下來留用, 不用每次都去google了, 畢竟網上的文章也不是都是對的, 每次都找很久.

語法

當我要找到不包含某些字符串(如test)時, 可以使用

^((?!test).)*$
效果圖.png

解釋

  1. 肯定式向前查找
    匹配字符序列Start后跟一個空格和Test字符序列(不區分大小寫)
    正則模式:Start(?= Test)
    匹配字符序列some,如果在同一句子中還存在字符序列some
    正則模式:some(?=.some.)
  2. 否定式向前查找
    匹配字符序列Start后面不存在test字符序列
    正則模式:Start (?!test)
    匹配Start 后面不存在test的行
    正則模式: ^.Start((?!test).)$
  3. 肯定式向后查找
    匹配前面有"rt"的字符序列Test
    正則模式:(?<=rt )Test
  4. 否定式向后查找
    匹配前面沒有"rt "的字符序列Test
    正則模式:(?<!rt) Test

運行結果

Start(?= Test).png
some(?=.*some.*).png
Start (?!test).png
^.*Start((?!test).)*$.png
(?<=rt )Test.png
(?<!rt) Test.png

參考文章

正則表達式里字符串”不包含”匹配技巧
正則表達式向前查找向后查找,環繞或零寬斷言

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容