進(jìn)入江蘇省住房和城鄉(xiāng)建設(shè)廳網(wǎng)站百度推廣外包
目錄
- notepad++中使用正則表達(dá)式
- notepad中正則表達(dá)式的語(yǔ)法
- notepad中常用的正則表達(dá)式類(lèi)
- notepad中查找窗口的關(guān)于正則表達(dá)式的參數(shù)說(shuō)明
- notepad正則表達(dá)式不能選擇匹配內(nèi)容
- notepad正則表達(dá)式使用舉例
- 正則表達(dá)式提取分隔符前的內(nèi)容
- 正則表達(dá)式替換一個(gè)分隔符為換行符
- 刪除多余的空行
- 正則匹配并按匹配組進(jìn)行替換
- 參考
notepad中正則表達(dá)式的語(yǔ)法
首先,注意Notepad++正則表達(dá)式字符串最長(zhǎng)不能超過(guò)69個(gè)字符。
第二,notepad中的正則表達(dá)式語(yǔ)法與通用的正則表達(dá)式語(yǔ)法以及python re模塊中支持的正則表達(dá)式語(yǔ)法都沒(méi)有沒(méi)有實(shí)質(zhì)區(qū)別,列舉如下:
-
\
?轉(zhuǎn)義字符 如:要使用 “\” 本身, 則應(yīng)該使用“\” -
\t
?Tab制表符 注:擴(kuò)展和正則表達(dá)式都支持 -
\r
?回車(chē)符CR 注:擴(kuò)展支持,正則表達(dá)式不支持 -
\n
?換行符LF 注:擴(kuò)展支持,正則表達(dá)式不支持 -
\r\n
?正則表達(dá)式可表示回車(chē)換行 -
.
?匹配任意一個(gè)字符 -
^
?其右邊的表達(dá)式被匹配在行首。如:^A匹配以“A”開(kāi)頭的行 -
$
?其左邊的表達(dá)式被匹配在行尾。如:e$匹配以“e”結(jié)尾的行 -
|
?或運(yùn)算符,匹配表達(dá)式左邊和右邊的字符串。如:ab|bc匹配“ab”或“bc” -
[]
?匹配列表中任意單個(gè)字符。如:[ab]匹配“a”或“b”;[0-9]匹配任意單個(gè)數(shù)字 -
[^]
?匹配列表之外的任意單個(gè)字符。如:[ab]匹配“a”和“b”以外的單個(gè)字符;[0-9]匹配任意單個(gè)非數(shù)字字符 -
*
其左邊的字符被匹配任意次(0次或多次)。如:be*匹配“b”,“be”或“bee” -
+
?其左邊的字符被匹配至少一次(1次或多次)。如:be+匹配“be”或“bee”,但不匹配“b” -
?
?其左邊的字符被匹配0次或者1次。如:be?匹配“b”或“be”,但不匹配“bee”;\r?\n匹配行結(jié)尾符 -
()
?影響表達(dá)式匹配的順序(類(lèi)似C++的小括號(hào)會(huì)影響表達(dá)式運(yùn)算順序),并且用作表達(dá)式的分組標(biāo)記(標(biāo)記從1開(kāi)始)如:([a-z]bc)smn\1匹配“tbcsmntbc”;另見(jiàn):看下文的示例 -
{}
?指定前面的字符或分組的出現(xiàn)次數(shù) 如:abc{3}匹配abccc;a(bc){2}匹配abcbc -
\d
?匹配一個(gè)數(shù)字字符。等價(jià)于:[0-9] -
\D \d
取反,匹配一個(gè)非數(shù)字字符。等價(jià)于:[^0-9] -
\s
?匹配任意單個(gè)空白字符:包括空格、制表符等(注:不包括換車(chē)符和換行符)。等價(jià)于:[ \t] -
\S \s
取反的任意單個(gè)字符。 -
\w
?匹配包括下劃線的任意單個(gè)字符。等價(jià)于:[A-Za-z0-9_] -
\W \w
?取反的任意單個(gè)字符。等價(jià)于:[^A-Za-z0-9_] -
\b
?匹配單詞起始處或結(jié)尾處
notepad中常用的正則表達(dá)式類(lèi)
下表中列舉的內(nèi)容,左側(cè)pattern 或者meaning列中的冒號(hào)后面的表達(dá)式,都可以用于在notepad 查找窗口中的正則表達(dá)式模式下的查找目標(biāo),就可以匹配相應(yīng)的內(nèi)容。
Pattern | Meaning |
---|---|
[[:alpha:]] | 匹配一個(gè)英文字母: [A-Za-z] |
[[:digit:]] | 匹配一個(gè)數(shù)字: [0-9] |
[[:xdigit:]] | 匹配一個(gè)十六進(jìn)制數(shù)字: [0-9A-Fa-f] |
[[:alnum:]] | 匹配一個(gè)字母數(shù)字: [0-9A-Za-z] |
[[:lower:]] | 匹配一個(gè)小寫(xiě)英文字母: [a-z] |
[[:upper:]] | 匹配一個(gè)大寫(xiě)英文字母: [A-Z] |
[[:blank:]] | 匹配一個(gè)空白(空格或者制表符):[ \t] |
[[:space:]] | 匹配一個(gè)空白符:[ \t\r\n\v\f] |
[[:graph:]] | 匹配一個(gè)圖形字符: [\x21-\x7E] |
[[:print:]] | 匹配可打印字符(圖形字符和空格) |
[[:cntrl:]] | 匹配控制(control)字符 |
[[:punct:]] | 匹配一個(gè)標(biāo)點(diǎn)字符:[-!"#$%&'()*+,./:;<=>?@[]_`{ |
notepad中查找窗口的關(guān)于正則表達(dá)式的參數(shù)說(shuō)明
-
正則表達(dá)式的選中點(diǎn):表示你在查找中輸入的內(nèi)容是一個(gè)正則表達(dá)式
-
匹配新行的復(fù)選框:如果如果選中該復(fù)選框,則表示使用點(diǎn)時(shí),不是針對(duì)每一行而是針對(duì)整個(gè)文檔進(jìn)行搜索。大多數(shù)的使用場(chǎng)景下,不勾選該復(fù)選框。
notepad正則表達(dá)式不能選擇匹配內(nèi)容
注意:notepad++ 不支持匹配提取。 一般操作正則表達(dá)式主要是用來(lái)匹配查找、匹配替換。
這個(gè)提取問(wèn)題可以使用sublime text來(lái)進(jìn)行實(shí)現(xiàn), SublimeText可以選中所有匹配項(xiàng)。
另外EmEditor也可以選中正則表達(dá)式的匹配項(xiàng),但是EmEditor這個(gè)軟件不是開(kāi)源的,也不是免費(fèi)的,所以推薦還是使用sublime text。
notepad正則表達(dá)式使用舉例
正則表達(dá)式提取分隔符前的內(nèi)容
舉例:notepad文檔中的輸入內(nèi)容如下(注意以下每行結(jié)尾都有換行符CR|LF)
libX11-1.6.5
lksctp-tools-1.0.17
mailcap-2.1.41
ctrl H, 查找目標(biāo)輸入?([^-]*).*
替換為輸入,\1
點(diǎn)擊全部替換后的結(jié)果為
libX11
lksctp
mailcap
正則表達(dá)式替換一個(gè)分隔符為換行符
原始文檔為
libX11;lksctp;mailcap;
ctrl H, 查找目標(biāo)輸入?;
替換為輸入,\r\n
點(diǎn)擊全部替換后的結(jié)果為
libX11CR|LF
lksctpCR|LF
mailcapCR|LF
刪除多余的空行
原始文檔內(nèi)容為
libX11CR|LF
CR|LF
CR|LF
lksctpCR|LF
CR|LF
mailcapCR|LF
目標(biāo)是,刪除多余的空行。
ctrl H, 查找目標(biāo)為\r\n\r\n
,
替換為輸入\r\n
點(diǎn)擊全部替換,全部替換也需要多點(diǎn)擊2次,就可以看到所有的空行被刪除了。
替換后結(jié)果為:
libX11CR|LF
lksctpCR|LF
mailcapCR|LF
正則匹配并按匹配組進(jìn)行替換
正則表達(dá)式支持帶標(biāo)記的表達(dá)式(tagged expressions
)。使用(
和)
包圍要標(biāo)記的文本,然后在替換字符串中使用\ 1替換第一個(gè)匹配的文本,用\ 2替換第二個(gè)匹配的文本,即可完成此操作。舉例如下:
Text body | Search string | Replace string | Result |
---|---|---|---|
Hi my name is Fred | my name is (.+) | my name is not \1 | Hi my name is not Fred |
The quick brown fox jumped over the fat lazy dog | brown (.+) jumped over the (.+) | brown \2 jumped over the \1 | The quick brown fat jumped over the fox lazy dog |