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);