亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

用正則刪除不包含某個字符串的行的代碼

 更新時間:2009年09月07日 11:22:03   投稿:mdxy-dxy  
這個需求發(fā)生在分析apache日志的時候。在日志中發(fā)現(xiàn)了一個比較可疑的ip,出現(xiàn)頻率頗高,但每天的日志有幾百萬行,如何從中幾百萬行中找出需要的數(shù)據(jù)來進行分析呢?

先說一下這個可疑的ip,58.63.144.170,據(jù)說是一個蜘蛛,上帝保佑它下地獄。

看過apache日志的朋友應該知道,apache的訪問日志的每一行是以訪問者的ip開始的。因為日志比較大,所以我是用ultraedit來看的。用ultraedit的時候需要注意,它的正則一共有兩種,一種是符合perl規(guī)范的,而默認的是ut自帶的一種,寫法比較特殊。本文中用到的正則表達式都是perl兼容的,ut中這個選項可以在“高級->配置->搜索->正則表達式引擎”中進行修改。

經(jīng)過一番思索,發(fā)現(xiàn)自己掌握的正則表達式中好象沒有能直接刪除“不包含”一個指定串的用法。思前想后,先寫一個包含指定串的再說吧:^(58.63.144.170).*$,測試一下,可以把包含指定ip的行找出來,接下來要做的就是怎么把這些行保留下來而刪除另外的行。在嘗試了N次以后,我終于放棄了直接刪除不包含這個ip的行的想法。怎么辦呢?退一步海闊天空!既然不能直接刪除,那就迂回一下吧。雖然不能直接刪除不包含指定串的行,但刪除不包含指定字符的正則我還是會寫的:)

先給包含指定ip的行做個標志,這里要用到ut的替換功能。要查找的行:^(58.63.144.170)(.*)。因為日志的每一行都是以數(shù)字開始的,所以我選擇‘%’做為標志的特殊符號,要替換成的正則為:%$1$2。全部替換以后,包含指定ip的行就變成了這個樣子:%58.63.144.170……。接下來,我們再把行首不是‘%’的行刪掉,查找:^[^%].*,替換處為空。執(zhí)行全部替換,日志中只剩下了以‘58.63.144.170’開頭的行,大功告成!等等,剩下的空行太難看,讓我們把它們干掉,查找:^[\r\n]*$,替換處為空,執(zhí)行全部替換,世界終于清靜了...

其實本文中用的正則都是很基本的東西,雖然最終沒能寫出刪除包含指定字符串的行的正則,但在迂回中最終也是現(xiàn)實了想要的功能,而且看上去也更清晰一些。有時候退一步未必不是一個更好的選擇。

相關文章

  • python 正則表達式 反斜杠(/)的麻煩和陷阱

    python 正則表達式 反斜杠(/)的麻煩和陷阱

    這里是一點小心得。 由于正則表達式使用反斜杠來轉(zhuǎn)義特殊字符,而python自身處理字符串時,反斜杠也是用于轉(zhuǎn)義字符,這樣就產(chǎn)生了一個雙重轉(zhuǎn)換的問題
    2009-08-08
  • 只能輸入正整數(shù)的正則表達式及常用的正則表達式

    只能輸入正整數(shù)的正則表達式及常用的正則表達式

    這篇文章主要介紹了只能輸入正整數(shù)的正則表達式以及常用的正則表達式,需要的朋友可以參考下
    2018-09-09
  • 淺析正則表達式-替換原則(.NET) 圖文

    淺析正則表達式-替換原則(.NET) 圖文

    最近經(jīng)常用到替換的東西所以就出來整理下,這里要分享的是正則表達式里面的替換原則,首先要聲明的是這里提及到的替換原則是.NET里面的正則表達式的替換原則
    2016-05-05
  • python 正則表達式 re.sub & re.subn

    python 正則表達式 re.sub & re.subn

    正則表達式一個比較常見的用途是找到所有模式匹配的字符串并用不同的字符串來替換它們。sub方法提供一個替換值,可以是字符串或函數(shù),和一個要被處理的字符串。這篇文章主要介紹了python 正則表達式 re.sub & re.subn,需要的朋友可以參考下
    2017-12-12
  • 最常用的PHP正則表達式收集整理

    最常用的PHP正則表達式收集整理

    正則表達式用于字符串處理、表單驗證等場合,實用高效。本文收集了一些常用的表達式:
    2008-04-04
  • jQuery正則表達式的使用方法步驟詳解

    jQuery正則表達式的使用方法步驟詳解

    本文主要和大家分享的就是jQuery學習中正則的使用,正則在jquery里面并沒有比JavaScript多哪些知識,基本上是一樣的,只是選擇器更好了一點,一起來看看吧
    2016-12-12
  • 利用正則表達式將字符串分組示例代碼

    利用正則表達式將字符串分組示例代碼

    這篇文章主要給大家介紹了關于利用正則表達式將字符串分組的相關資料,文中分別介紹了利用itertools模塊的groupby()方法和利用正則表達式是如何實現(xiàn)的,通過示例代碼介紹的非常詳細,需要的朋友們下面來一起看看吧。
    2017-08-08
  • ES9的新特性之正則表達式RegExp詳解

    ES9的新特性之正則表達式RegExp詳解

    這篇文章主要介紹了ES9的新特性之正則表達式RegExp詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • php半小時精通正則表達式

    php半小時精通正則表達式

    php半小時精通正則表達式...
    2006-11-11
  • C#中的正則表達式 學習資料

    C#中的正則表達式 學習資料

    C#中的正則表達式 學習資料...
    2007-03-03

最新評論