ultraedit Regex -刪除包含某個字串的所有行 .

來源:互聯網
上載者:User
UltraEdit實現“刪除包含某個關鍵字的所有行” 

1.Ctrl+R調出“替換對話方塊”
2.在左下角的“Regex”和“從檔案頂部全部替換”都打勾(Regex引擎用UltraEdit)
3.在“尋找內容”後面輸入:*select*^p
4.在“替換為”後面置空
5.點擊右側的“全部替換”

但是注意這裡的^p只是在unix編碼格式中,dos編碼格式時要用^n。

UE的DOS格式:

純文字檔案(不包括MAC格式)一般有兩種,一種表示行末的是一個“斷行符號+換行”也就是“\r\n”組合,另一種呢,則只有換行,也就是“\n”,這兩種格式,一種是DOS格式,另一種一般是Unix系統使用的,所謂轉換成DOS格式就是指這種轉換了。

下面解釋下ultraeditRegex:

首先,在UE中需要使用者按鍵到“進階”-“配置”-“搜尋”-“Regex引擎”中進行使用哪一種Regex的選擇。

如果你選中“UltraEdit風格Regex”,在以後的搜尋和替換功能中就將使用“UltraEdit風格Regex”的文法規則來進行操作,其它同理。

現在的版本裡面,還加入了“Perl 相容Regex”,在以後的文章中還有提到。

符號 功能
% 匹配行的開始 - 顯示搜尋字串必須在行的開始,但是在所選擇的結果字串中不包括任何行終止字元。
$ 匹配行尾 - 顯示搜尋字串必須在行尾,但是在所選擇的結果字串中不包括任何行終止字元。
? 除了分行符號以外匹配任何單個的字元
* 除了分行符號匹配任何數量的字元和數字
+ 前一字元匹配一個或多個,但至少要出現一個
++ 前一字元匹配零個或多個,但至少要出現一個
^b 匹配一個分頁
^p 匹配一個分行符號(CR/LF)(段)(DOS檔案)
^r 匹配一個分行符號(CR 僅僅)(段)(MAC 檔案)
^n 匹配一個分行符號 ( LF 僅僅 )( 段 )( UNIX 檔案 )
^t 匹配一個標籤字元TAB
[] 匹配任何單個的字元,或在方括弧中的範圍
^{A^}^{ B^} 匹配運算式A或 B
^ 重載其後的正規運算式字元
^(^) 括或標註為用於替換命令的運算式。

一個Regex最多可以有9個標註運算式, 按正規運算式的需要而定。
相應的替換運算式是 ^x , 替換範圍x是1-9。例如:
If ^(h*o^) ^(f*s^) matches "hello folks",
^2 ^1 would replace it with "folks hello".

(hello folks 將被替換成 folks hello。)

註: ^ 是實際字元 ^不是Ctl + 索引值。

例如:
m?n 匹配 "man","men","min" 但不匹配 "moon".
t*t 匹配 "test","tonight" 和 "tea time" (the "tea t" portion) 但不匹配 "tea
time" (newline between "tea " and "time").
Te+st 匹配 "test","teest"," teeeest "等等。但是不匹配 "tst"。
[aeiou] 匹配每個小寫母音。
[,.?] 匹配一文字的 ",","."或 "?"。
[0-9, a-z] 匹配任何數位,或小寫字母。
[~0-9] 除了數字以外匹配任何字元 (~ 意味著"不")

你按如下方式可以尋找一個運算式A或 B :

"^{John^}^{Tom^}"

這將在找John或Tom的出現。應該在 2 個運算式之間沒有任何東西。

你可以在同一搜尋中按如下方式組合A or B and C or D:

"^{John^}^{Tom^}^{Smith^}^{Jones^}"

這將在John or Tom 後面找 Smith or Jones。

下表為"Unix"句法類型的Regex。

Regex (Unix句法):

符號 功能
標記下一個字元作為一個特殊的字元。
"n" 匹配字元"n"。"n" 一個分行符號或分行符號字元。
^ 匹配/定位行的開始。
$ 匹配/定位行的尾。
* 匹配前面的字元零次或多次。例
+ 匹配前面的字元一次或多次。例
. 匹配除了一個分行符號字元匹配任何單個的字元。
(expression)標註用於替換命令的運算式。一個Regex根據需要,最多可以有9個標註運算式。相應的代替運算式是 x , x的範圍是 1-9 。

例如:

If (h.*o) (f.*s) matches "hello folks",
2 1 would replace it with "folks hello".
(hello folks 將被替換成 folks hello。)

[xyz] 一個字元集。匹配在方括弧之間的任何字元。
[^xyz] 一個否定的字元集。不匹配在方括弧之間的任何字元。
d 匹配一個數字字元。等價於[0-9]。
D 匹配一個非數字字元。等價於[^0-9]。
f 匹配一個換頁字元。
n 匹配一個換行字元。
r 匹配一個斷行符號符字元。
s 匹配任何空白的空格, 標籤, 換頁, 包括空格等等,但不匹配分行符號。
S 匹配任何非空白的字元,但不匹配分行符號。
t 匹配一個標籤TAB字元。
v 匹配一個垂直的標籤字元。
w 匹配任何詞語字元包括底線。
W 匹配任何非詞語字元字元。

註: ^ 是實際字元 ^不是Ctl + 索引值。

例如:
m.n 匹配 "man","men","min" 但不匹配 "moon".
t+t 匹配 "test","tonight" 和 "tea time" (the "tea t" portion) 但不匹配 "tea
time" (newline between "tea " and "time").
Te*st 匹配 "test","teest"," teeeest "等等。但是不匹配 "tst"。
[aeiou] 匹配每個小寫母音。
[,.?] 匹配一文字的 ",","."或 "?"。
[0-9,a-z] 匹配任何數位,或小寫字母。
[^0-9] 除了數字以外匹配任何字元 (~ 意味著"不")

你按如下方式可以尋找一個運算式A或 B :

"(John)|(Tom)"

這將在找John或Tom的出現。應該在 2 個運算式之間沒有任何東西。

你可以在同一搜尋中按如下方式組合A or B and C or D:

"(John|Tom) (Smith|Jones)"

這將在John or Tom 後面找 Smith or Jones。

另外:

p 匹配 CR/LF ( 作為 rn 的一樣 ) 作為DOS行結束符匹配

如果尋找/替換功能中Regex沒有選用,則替換欄位中下列字元也是有效:

符號 功能

^^ 匹配一個 "^" 字元
^s 替換為被選擇 ( 加亮 ) 活躍的檔案視窗的文章。
^c 替換為剪貼簿的內容
^b 匹配一個頁裂縫
^p 匹配一個分行符號 ( CR/LF )( 段 )( DOS 檔案)
^r 匹配一個分行符號 ( CR 僅僅 )( 段 )( MAC 檔案)
^n 匹配一個分行符號 ( LF 僅僅 )( 段 )( UNIX 檔案)
^t 匹配一個標籤TAB字元

UltraEdit實現“刪除包含某個關鍵字的所有行” 

1.Ctrl+R調出“替換對話方塊”
2.在左下角的“Regex”和“從檔案頂部全部替換”都打勾(Regex引擎用UltraEdit)
3.在“尋找內容”後面輸入:*select*^p
4.在“替換為”後面置空
5.點擊右側的“全部替換”

但是注意這裡的^p只是在unix編碼格式中,dos編碼格式時要用^n。

UE的DOS格式:

純文字檔案(不包括MAC格式)一般有兩種,一種表示行末的是一個“斷行符號+換行”也就是“\r\n”組合,另一種呢,則只有換行,也就是“\n”,這兩種格式,一種是DOS格式,另一種一般是Unix系統使用的,所謂轉換成DOS格式就是指這種轉換了。

下面解釋下ultraeditRegex:

首先,在UE中需要使用者按鍵到“進階”-“配置”-“搜尋”-“Regex引擎”中進行使用哪一種Regex的選擇。

如果你選中“UltraEdit風格Regex”,在以後的搜尋和替換功能中就將使用“UltraEdit風格Regex”的文法規則來進行操作,其它同理。

現在的版本裡面,還加入了“Perl 相容Regex”,在以後的文章中還有提到。

符號 功能
% 匹配行的開始 - 顯示搜尋字串必須在行的開始,但是在所選擇的結果字串中不包括任何行終止字元。
$ 匹配行尾 - 顯示搜尋字串必須在行尾,但是在所選擇的結果字串中不包括任何行終止字元。
? 除了分行符號以外匹配任何單個的字元
* 除了分行符號匹配任何數量的字元和數字
+ 前一字元匹配一個或多個,但至少要出現一個
++ 前一字元匹配零個或多個,但至少要出現一個
^b 匹配一個分頁
^p 匹配一個分行符號(CR/LF)(段)(DOS檔案)
^r 匹配一個分行符號(CR 僅僅)(段)(MAC 檔案)
^n 匹配一個分行符號 ( LF 僅僅 )( 段 )( UNIX 檔案 )
^t 匹配一個標籤字元TAB
[] 匹配任何單個的字元,或在方括弧中的範圍
^{A^}^{ B^} 匹配運算式A或 B
^ 重載其後的正規運算式字元
^(^) 括或標註為用於替換命令的運算式。

一個Regex最多可以有9個標註運算式, 按正規運算式的需要而定。
相應的替換運算式是 ^x , 替換範圍x是1-9。例如:
If ^(h*o^) ^(f*s^) matches "hello folks",
^2 ^1 would replace it with "folks hello".

(hello folks 將被替換成 folks hello。)

註: ^ 是實際字元 ^不是Ctl + 索引值。

例如:
m?n 匹配 "man","men","min" 但不匹配 "moon".
t*t 匹配 "test","tonight" 和 "tea time" (the "tea t" portion) 但不匹配 "tea
time" (newline between "tea " and "time").
Te+st 匹配 "test","teest"," teeeest "等等。但是不匹配 "tst"。
[aeiou] 匹配每個小寫母音。
[,.?] 匹配一文字的 ",","."或 "?"。
[0-9, a-z] 匹配任何數位,或小寫字母。
[~0-9] 除了數字以外匹配任何字元 (~ 意味著"不")

你按如下方式可以尋找一個運算式A或 B :

"^{John^}^{Tom^}"

這將在找John或Tom的出現。應該在 2 個運算式之間沒有任何東西。

你可以在同一搜尋中按如下方式組合A or B and C or D:

"^{John^}^{Tom^}^{Smith^}^{Jones^}"

這將在John or Tom 後面找 Smith or Jones。

下表為"Unix"句法類型的Regex。

Regex (Unix句法):

符號 功能
標記下一個字元作為一個特殊的字元。
"n" 匹配字元"n"。"n" 一個分行符號或分行符號字元。
^ 匹配/定位行的開始。
$ 匹配/定位行的尾。
* 匹配前面的字元零次或多次。例
+ 匹配前面的字元一次或多次。例
. 匹配除了一個分行符號字元匹配任何單個的字元。
(expression)標註用於替換命令的運算式。一個Regex根據需要,最多可以有9個標註運算式。相應的代替運算式是 x , x的範圍是 1-9 。

例如:

If (h.*o) (f.*s) matches "hello folks",
2 1 would replace it with "folks hello".
(hello folks 將被替換成 folks hello。)

[xyz] 一個字元集。匹配在方括弧之間的任何字元。
[^xyz] 一個否定的字元集。不匹配在方括弧之間的任何字元。
d 匹配一個數字字元。等價於[0-9]。
D 匹配一個非數字字元。等價於[^0-9]。
f 匹配一個換頁字元。
n 匹配一個換行字元。
r 匹配一個斷行符號符字元。
s 匹配任何空白的空格, 標籤, 換頁, 包括空格等等,但不匹配分行符號。
S 匹配任何非空白的字元,但不匹配分行符號。
t 匹配一個標籤TAB字元。
v 匹配一個垂直的標籤字元。
w 匹配任何詞語字元包括底線。
W 匹配任何非詞語字元字元。

註: ^ 是實際字元 ^不是Ctl + 索引值。

例如:
m.n 匹配 "man","men","min" 但不匹配 "moon".
t+t 匹配 "test","tonight" 和 "tea time" (the "tea t" portion) 但不匹配 "tea
time" (newline between "tea " and "time").
Te*st 匹配 "test","teest"," teeeest "等等。但是不匹配 "tst"。
[aeiou] 匹配每個小寫母音。
[,.?] 匹配一文字的 ",","."或 "?"。
[0-9,a-z] 匹配任何數位,或小寫字母。
[^0-9] 除了數字以外匹配任何字元 (~ 意味著"不")

你按如下方式可以尋找一個運算式A或 B :

"(John)|(Tom)"

這將在找John或Tom的出現。應該在 2 個運算式之間沒有任何東西。

你可以在同一搜尋中按如下方式組合A or B and C or D:

"(John|Tom) (Smith|Jones)"

這將在John or Tom 後面找 Smith or Jones。

另外:

p 匹配 CR/LF ( 作為 rn 的一樣 ) 作為DOS行結束符匹配

如果尋找/替換功能中Regex沒有選用,則替換欄位中下列字元也是有效:

符號 功能

^^ 匹配一個 "^" 字元
^s 替換為被選擇 ( 加亮 ) 活躍的檔案視窗的文章。
^c 替換為剪貼簿的內容
^b 匹配一個頁裂縫
^p 匹配一個分行符號 ( CR/LF )( 段 )( DOS 檔案)
^r 匹配一個分行符號 ( CR 僅僅 )( 段 )( MAC 檔案)
^n 匹配一個分行符號 ( LF 僅僅 )( 段 )( UNIX 檔案)
^t 匹配一個標籤TAB字元

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.