背景
我經常使用sublime去處理很多文件, 利用強大的正則表達式, 將一些日志以及excel文本進行格式化為特定內容.
最近經常遇到只保留我需要的行, 其他行刪除掉. 也就需要用到正則中的不等于, 找了好幾次, 覺得還是有必要記下來留用, 不用每次都去google了, 畢竟網上的文章也不是都是對的, 每次都找很久.
語法
當我要找到不包含某些字符串(如test)時, 可以使用
^((?!test).)*$
效果圖.png
解釋
- 肯定式向前查找
匹配字符序列Start后跟一個空格和Test字符序列(不區分大小寫)
正則模式:Start(?= Test)
匹配字符序列some,如果在同一句子中還存在字符序列some
正則模式:some(?=.some.)- 否定式向前查找
匹配字符序列Start后面不存在test字符序列
正則模式:Start (?!test)
匹配Start 后面不存在test的行
正則模式: ^.Start((?!test).)$- 肯定式向后查找
匹配前面有"rt"的字符序列Test
正則模式:(?<=rt )Test- 否定式向后查找
匹配前面沒有"rt "的字符序列Test
正則模式:(?<!rt) Test
運行結果
Start(?= Test).png
some(?=.*some.*).png
Start (?!test).png
^.*Start((?!test).)*$.png
(?<=rt )Test.png
(?<!rt) Test.png