EmEditor教學,使用秘訣

網路上各式各樣文章轉貼於此,Ctrl C+ Ctrl V 動作中......
回覆文章
DenkiFut

EmEditor教學,使用秘訣

文章 DenkiFut »

EmEditor刪除偶數行或奇數行的方法

有個文件,每一行都會重複一次,所以想刪除其中的偶數行,這裡使用emeditor, 用正則的方法,可以很容易把偶數行刪除。

在emeditor中,用規則運算式刪除偶數行的方法:

Ctrl+H
勾選「規則運算式」
尋找「\n(.*)\n」
取代為「\n」

EmEditor刪除特定開頭及特定結尾間的文字

例如:要將「©ABCDIWKDLKSKLCKSSSL</p>」當中,以©開頭、</p>結尾的整個文字刪除

Ctrl+H
勾選「規則運算式」
尋找「©.*?</p>」或「^<p>.*?</p>$」
取代為「」

處理大量文字,並移除包含「?」及其之後的數字

要在 EmEditor 中處理大量文字,並移除包含「?」及其之後的數字,你可以使用「正則表達式」功能來快速完成這項工作。以下是具體步驟:

打開文件:
在 EmEditor 中打開你要處理的文件。

開啟「尋找和替換」功能:
按下 Ctrl + H 快捷鍵,或從「編輯」菜單中選擇「替換」。

設定正則表達式:
在「尋找內容」框中,輸入正則表達式 (\?.*)。這表示尋找所有「?」及其之後的任何字符。
確保勾選「使用正則表達式」選項。

進行替換操作:
在「替換為」框中不輸入任何內容(留空)。
點擊「全部替換」按鈕。這會將所有匹配的字串替換為空白,即移除它們。

保存更改:
完成後,保存文件以保留更改。

這樣,EmEditor 會尋找所有包含「?」及其之後的字符的字串,並將它們替換為空白,達到移除的目的。正則表達式是處理這類文本任務的強大工具,但也需要小心使用,因為錯誤的表達式可能會導致非預期的結果。在進行大規模替換之前,建議先在小範圍內測試以確保正確性。

用EmEditor快速刪除段首、段尾空格

用EmEditor打開要替換的TXT文件,滑鼠點選將游標定位到文章最前面。執行Ctrl+H快捷命令,調出“替換”窗口,在複選框列表中,選中“使用正規表示式”一項,去掉“僅搜尋選定文字”一項。前者表示我們要構造搜尋表示式來尋找替換,後者表示我們要在全文中實現尋找替換。

刪除段首空格 ,在“尋找”文字框中輸入一個半形符號“^”和半形空格,緊接著再輸入一個半形*號,構成尋找正規表示式“^ *”,如果是全形空格就把中間的半形空格換成全形的。該表示式的意思是尋找段首的空格串,不管該空格串中包含多少連續空格。在“取代為”文字框中什麼都不輸入。點選“全部替換”按鈕,完成全文段首空格字元的替換。

而刪除段尾空格的表示式是“ *$”,其中第一個字元是空格,根據替換內容不同,可以是半形或者全形的,接著*表示連續的空格,$則表示段尾。




Emeditor中使用正則表達式的一些技巧


正則表達式的功能非常強大,使用文本編輯器的過程中發現使用正則表達式進行替換非常方便,能完成許多普通的字符替換完成不了的效果,下面就是例子:

EmEditor文本編輯器中使用正則表達式進行替換的示例:


表達式 說明
[] 匹配列表之中的任何單個字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意數字.
[^] 匹配列表之外的任何單個字符. 例如, "[^ab]" 匹配 "a" 和 "b" 以外的字符. "[^0-9]" 匹配任意非數字字符.
[abxy0-6] 匹配abxy中任意一個字母或0-6任意一個數字
[^abxy0-6] 匹配除了abxy和0-6的任意一個字符

^ 其右邊的表達式被匹配在一行的開始. 例如 "^A" 僅僅匹配以 "A" 開頭的行.
() 影響表達式匹配的順序,並且用作表達式的分組標記.
\ 轉義字符. 如果你要使用 "" 本身, 則應該使用 "\".
. 匹配任意一個字符
\t 匹配tab
\n new line
\r return
\w word, 匹配任意一個字母(加上"_")
\W 匹配任意一個非字母
\s space, 匹配空格
\S 匹配非空格
\d digital,匹配任意一個數字
\D 匹配任意一個非數字

{n,m} 匹配n到m次
? 匹配0或1次,相當於 {0,1}其左邊的字符被匹配0次或者1次. 例如 "be?" 匹配 "b" 或者 "be" 但是不匹配 "bee".
* 匹配0或多次,相當於 {0,}其左邊的字符被匹配任意次(0次,或者多次). 例如 "be*" 匹配 "b", "be" 或者 "bee".
+ 匹配1或多次,相當於 {1,}其左邊的字符被匹配至少一次(1次,或者多次). 例如 "be+" 匹配 "be" 或者 "bee" 但是不匹配 "b".

^ 匹配行首
$ 匹配行尾
\b boundary,匹配單詞邊界

| or
( ) 括號分組,用於後向引用
\1 \2 後向引用先前括號分組的表達式
\0 將引用上次的匹配結果

示例1 :數據,將原始數據改爲以逗號分隔:

原始數據:

TEXT 460011219411234 8615529880000

TEXT 460018827961234 8613178860000

TEXT 460015730611234 8618606850000

替換後數據:

TEXT,460011219411234,8615529880000

TEXT,460018827961234,8613178860000

TEXT,460015730611234,8618606850000


方法1、

查找: ([A-Z]+?)\s+(\d+?)\s+(\d+)

替換爲: \1,\2,\3


方法2、

查找: ([^\s]+?)\s+

替換爲: \1,

有的是"\1"、"\2",有的是"$1"、"$2",具體問題具體對待。

示例2:數據,將<p>與</p>便籤去掉,只留下便籤內的內容:

原始數據:

<p>

M:標記符號(一般不會單獨出現);

</p>

替換後數據:

M:標記符號(一般不會單獨出現);

方法1、

查找: <p>([\s\S]*?)<\/p>

替換爲: \1

方法2、

查找: <p>([\s\S]+?)<\/p>

替換爲: \1

需要注意的是EmEditor查找多行數據需要設置下

EmEditor打開後搜索時在自定義裏邊吧.匹配換行符選中和.匹配換行符的行數改大後用那個正則匹配


示例3

數據,將href=""內的網址替換成統一的網址數據:

查找: href="([^"]+?)"或者href=\"(.+?)\"

替換爲: href="${pubUrl!}"

注意這裏不能用(.*)這個會匹配多餘數據


示例4

調換逗號前後的數據:

"瑞秋","Rachel"

"錢德勒","Chandler"

"錢德","Chandler"

"喬伊","Joey"

"菲比","Phoebe"

查找:(".*?"),(".*?")

替換爲:\2,\1


示例5

特殊字符:

^ ,$ ,( ) ,[ ] ,{ } ,. ,? ,+ ,*,|

這些字符都是在正則表達式中被“徵用”了,稱之爲特殊字符,引用的時候,必須前面加 "\" 進行區分,比如你要用到 "$" 字符的時候,必須使用 "\$",這樣程序纔不會以爲你是在匹配行尾。

刪除帶"[]"的內容;

[00:53.90][Monica]:There's nothing to tell!

[00:55.60][Monica]:He's just some guy I work with!

[00:57.90][Joey]:C'mon, you're going out with the guy!

[00:59.10][Joey]:There's gotta be something wrong with him!

查找:\ [ .*\ ] (用時請清除空格)


一些Emeditor常用的正則表達式技巧

^[ /t]+

查找以上字符,並替換爲空,可刪除行首空白(包括全半角空格和製表符)。


[ /t]+$

查找以上字符,並替換爲空,可刪除行末空白(包括全半角空格和製表符)。


^[ /t]+|[ /t]+$

查找以上正則表達式,並替換爲空,可刪除行首和行末所有空白(包括全半角空格和製表符)。


[[:unicode:]]

代表所有中文字符;


其他

代碼: 選擇全部

雙引號包含的字符串                                               “.*?”
[ ]包含的字符串                                                  \ [ [ ^ \ [ ] * ? \ ](用時請清除空格)
變量名                                                            [a-zA-Z_][a-zA-Z_0-9]*
IP 地址                                   ([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})
各行Tab以後的文字列                                                \t.*$
行頭插入 //                                                     Find: ^   Replace with: //
刪除行頭 //                                                     Find: ^//
刪除行後的空白文字(包含空格和製表位 Space+Tab)                Find: \s+?$ 
將(abc)替換爲[abc]                                              Find: \((.*?)\) Replace: \[\1\]
將<H3 …>替換爲<H4 …>                                          Find: <H3(.*?)> Replace: <H4\1>
將9/13/2003替換爲2003年9月13日 Find: ([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4}) Replace: \3年\1月\2日
將字母a-z替換爲大寫字母                                         Find: [a-z]      Replace: \U\0
首字母大寫                                       Find: ([a-zA-Z])([a-zA-Z]*)    Replace: \U\1\L\2
平仮名ひらがなHiragana                                         [\x{3041}-\x{309e}]
全角片仮名 全角カタカナFull-width Katakana                   [\x{309b}-\x{309c}\x{30a1}-\x{30fe}]
半角仮名 半角カナHalf-width Kana                                [\x{ff61}-\x{ff9f}]
中日韓 漢字CJK ideographs                                    [\x{3400}-\x{9fff}\x{f900}-\x{fa2d}]
中日韓 漢字符號CJK ideograph marks                              [\x{3000}-\x{3037}]
韓國字符Hangul                              [\x{1100}-\x{11f9}\x{3131}-\x{318e}\x{ac00}-\x{d7a3}]

刪除重複行、刪除重複文字

這段代碼在EmEditor中使用正則表達式搜索並刪除包含字母「x」的所有行。

.*x.*(\r\n|\n)? 正則表達式匹配任何包含「x」的行,且這行可能後面跟有換行符。

eeReplaceAll | eeFindReplaceRegExp 表示替換文檔中所有這樣的匹配項,"" 表示用空字符串替換,即刪除這些行。

代碼: 選擇全部

document.DeleteDuplicates("",0);

使用正則表達式尋找包含 'x' 的字串並刪除

document.selection.Replace(".*x.*(\r\n|\n)?", "", eeReplaceAll | eeFindReplaceRegExp);



document.selection.Replace("◪\\s*(.*?)$", "<h3>$1</h3>", eeReplaceAll | eeFindReplaceRegExp);


將含有<p>◪開頭和</p>結尾的HTML標籤的字串,轉換成以<h3>開頭和</h3>結尾的字串。具體來說,它會尋找所有的<p>◪... </p>格式的文本,然後移除<p>◪和</p>,並將這段文本放入<h3>和</h3>之間。這裡的(.*?)代表任何字符的非貪婪匹配,即匹配盡可能少的字符,直到遇到下一個</p>為止。$1代表正則表達式中第一個括號內匹配到的文本。

代碼: 選擇全部

document.selection.Replace("<p>◪(.*?)</p>", "<h3>$1</h3>", eeReplaceAll | eeFindReplaceRegExp);

尋找並刪除每一行中從問號「?」開始到行尾的所有字符

以下這段代碼使用EmEditor的替換功能,尋找並刪除每一行中從問號「?」開始到行尾的所有字符。這通常用於移除URL或其他字符串中的查詢參數。正則表達式中的「(\?.)」意味著匹配一個問號「?」及其後的任何字符(「.」代表任意數量的任意字符),直到行尾。這裡的問號前面的反斜杠是用來轉義問號的,因為問號在正則表達式中有特殊的含義。整個匹配到的部分將被空字符串替換,即刪除

代碼: 選擇全部

document.selection.Replace("(\\?.*)","",eeReplaceAll | eeFindReplaceRegExp,0);
回覆文章