在?Notepad++?中,正則表達式(Regular Expressions, Regex)?是一個強大的搜索和替換工具,可以高效地處理文本。以下是?Notepad++ 正則表達式?的指南:
1. 如何在 Notepad++ 中使用正則表達式
打開搜索窗口:
快捷鍵?
Ctrl + F
(查找)或?Ctrl + H
(替換)。
選擇正則表達式模式:
在搜索窗口底部,選擇?"正則表達式"(
Regular expression
)選項。
輸入正則表達式:
在搜索框輸入你的正則表達式,點擊?"查找"?或?"替換"。
2. 常用正則表達式語法
基本匹配
表達式 | 說明 | 示例 |
---|---|---|
. | 匹配任意單個字符(換行符除外) | a.c ?→?abc ,?aac |
^ | 匹配行首 | ^Hello ?→ 匹配行首的?Hello |
$ | 匹配行尾 | end$ ?→ 匹配行尾的?end |
\ | 轉義特殊字符 | \. ?→ 匹配?. (而不是任意字符) |
字符類
表達式 | 說明 | 示例 |
---|---|---|
[abc] | 匹配?a 、b ?或?c | [aeiou] ?→ 匹配任意元音 |
[^abc] | 匹配?非?a 、b 、c ?的字符 | [^0-9] ?→ 匹配非數字 |
[a-z] | 匹配小寫字母 | [a-z] ?→?a ,?b , ...,?z |
[A-Z] | 匹配大寫字母 | [A-Z] ?→?A ,?B , ...,?Z |
[0-9] | 匹配數字 | [0-9] ?→?0 ,?1 , ...,?9 |
\d | 匹配數字(同?[0-9] ) | \d\d ?→?12 ,?34 |
\w | 匹配字母、數字或下劃線 | \w+ ?→?abc ,?var_1 |
\s | 匹配空白字符(空格、制表符等) | \s+ ?→?,?\t |
量詞(匹配次數)
表達式 | 說明 | 示例 |
---|---|---|
* | 匹配 0 次或多次 | a* ?→?"" ,?a ,?aa |
+ | 匹配 1 次或多次 | \d+ ?→?1 ,?123 |
? | 匹配 0 次或 1 次 | colou?r ?→?color ,?colour |
{n} | 匹配恰好?n ?次 | a{3} ?→?aaa |
{n,} | 匹配至少?n ?次 | \d{2,} ?→?12 ,?123 |
{n,m} | 匹配?n ?到?m ?次 | a{2,4} ?→?aa ,?aaa ,?aaaa |
分組與捕獲
表達式 | 說明 | 示例 |
---|---|---|
( ) | 分組,可在替換時引用 | (abc)+ ?→?abc ,?abcabc |
\1 ,?\2 , ... | 引用捕獲的分組 | 查找?(\d+)-(\d+) ,替換為?\2-\1 ?→?123-456 ?→?456-123 |
(?: ) | 非捕獲分組(不存儲匹配) | (?:abc)+ ?→?abcabc |
3. 實際應用示例
示例 1:刪除空行
查找:
^\s*$
^
?行首,\s*
?任意空白字符(0 次或多次),$
?行尾。
替換:留空(刪除空行)。
示例 2:提取所有郵箱
查找:
[\w.-]+@[\w.-]+\.\w+
[\w.-]+
?匹配用戶名(字母、數字、.
、-
),@
?后跟域名。
示例 3:批量替換日期格式
原始文本:
2023-12-31
查找:
(\d{4})-(\d{2})-(\d{2})
替換:
\3/\2/\1
結果:
31/12/2023
(改為日/月/年格式)。
示例 4:刪除 HTML 標簽
查找:
<[^>]+>
<
?開始標簽,[^>]+
?匹配?>
?以外的任意字符,>
?結束標簽。
替換:留空(刪除所有 HTML 標簽)。
4. Notepad++ 正則表達式注意事項
區分大小寫:默認區分大小寫,可在搜索選項取消勾選?
Match case
。貪婪匹配:
.*
?會匹配盡可能多的字符,.*?
?是非貪婪匹配(匹配最少字符)。換行匹配:默認?
.
?不匹配換行符,需勾選?[. matches newline]
(在?查找
?→?替換
?窗口)。特殊字符:
\
,?^
,?$
,?*
,?+
,??
,?[
,?]
,?{
,?}
,?(
,?)
?需要轉義(如?\*
?匹配?*
)。
5. 高級技巧
使用?\R
?匹配換行
\R
?可以匹配?\r\n
(Windows)、\n
(Linux/macOS)等換行符。示例:
abc\Rdef
?可以匹配:abc def
條件匹配
(?=...)
?正向預查(匹配后面是?...
?的內容)。示例:
Windows(?=10)
?只匹配?Windows
?后面是?10
?的情況(如?Windows10
)。
(?<=...)
?反向預查(匹配前面是?...
?的內容)。示例:
(?<=\$)\d+
?匹配?$
?后面的數字(如?$100
?→?100
)。
總結
任務 | 正則表達式 |
---|---|
刪除空行 | ^\s*$ |
提取郵箱 | [\w.-]+@[\w.-]+\.\w+ |
替換日期格式 | (\d{4})-(\d{2})-(\d{2}) ?→?\3/\2/\1 |
刪除 HTML 標簽 | <[^>]+> |
匹配換行 | \R |
掌握這些正則表達式技巧,可以讓你在?Notepad++?中高效處理文本!如果需要更復雜的匹配,可以嘗試組合使用分組、量詞和預查功能。