notepad++ 批量替換刪除指定字符之后 或者 之前的字符,Notepad+批量替換使用大全
資源寶分享:www.httple.net
注意: 不支持多行表達式 (involving \n, \r, etc).
1 基本表達式
符號 | 解釋 |
---|---|
. | 匹配任意字符,除了新一行(\n)。也就是說 “.”可以匹配 \r ,當文件中同時含有\(zhòng)r and \n時,會引起混亂。要匹配所有的字符,使用\s\S。 |
(…) | 這個匹配一個標簽區(qū)域. 這個標簽可以被訪問,通過語法 \1訪問第一個標簽, \2 訪問第二個, 同理 \3 \4 … \9。 這些標簽可以用在當前正則表達式中,或則替search和replace中的換字符串。 |
\1, \2, etc | 在替換中代表1到9的標簽區(qū)域(\1 to \9)。例如, 查找字符串 Fred([1-9])XXX 并替換為字符串 Sam\1YYY的方法,當在文件中找到Fred2XXX的字符串時,會替換為Sam2YYY。注意: 只有9個區(qū)域能使用,所以我們在使用時很安全,像\10\2 表示區(qū)域1和文本”0”以及區(qū)域2。 |
[…] | 表示一個字符集合, 例如 [abc]表示任意字符 a, b or c.我們也可以使用范圍例如[a-z] 表示所以的小寫字母。 |
[^…] | 表示字符補集. 例如, [^A-Za-z] 表示任意字符除了字母表。 |
^ | 匹配一行的開始(除非在集合中, 如下). |
$ | 匹配行尾. |
* | 匹配0或多次, 例如 Sa*m 匹配 Sm, Sam, Saam, Saaam 等等. |
+ | 匹配1次或多次,例如 Sa+m 匹配 Sam, Saam, Saaam 等等. |
? | 匹配0或者1次, 例如 Sa?m 匹配 Sm, Sam. |
{n} | 匹配確定的 n 次.例如, ‘Sa{2}m’ 匹配 Saam. |
{m,n} | 匹配至少m次,至多n次(如果n缺失,則任意次數(shù)).例如, ‘Sa{2,3}m’ 匹配 Saam or Saaam. ‘Sa{2,}m’ 與 ‘Saa+m’相同 |
*?, +?, ??, {n,m}? | 非貪心匹配,匹配第一個有效的匹配,通常 ‘<.>’ 會匹配整個 ‘content’字符串 –但 ‘<.?>’ 只匹配 ” .這個標記一個標簽區(qū)域,這些區(qū)域可以用語法\1 \2 等訪問多個對應(yīng)1-9區(qū)域。 |
2 標記和分組
符號 | 解釋 |
---|---|
(…) | 一組捕獲. 可以通過\1 訪問第一個組, \2 訪問第二個. |
(?:…) | 非捕獲組. |
(?=…) | 非捕獲組 – 向前斷言. 例如’(.*)(?=ton)’ 表達式,當 遇到’Appleton’字符串時,會匹配為’Apple’. |
(?<=…) | 非捕獲組 – 向后斷言. 例如’(?<=sir) (.*)’ 表示式,當遇到’sir William’ 字符串時,匹配為’ William’. |
(?!…) | 非捕獲組 – 消極的向前斷言. 例如’.(?!e)’ 表達式,當遇到’Apple’時,會找到每個字母除了 ‘l’,因為它緊跟著 ‘e’. |
(? | 非捕獲組 – 消極向后斷言. 例如 ‘(? |
(?P…) | 命名所捕獲的組. 提交一個名稱到組中供后續(xù)使用,例如’(?PA[^\s]+)\s(?P=first)’ 會找到 ‘Apple Apple’. 類似的 ‘(A[^\s]+)\s\1’ 使用組名而不是數(shù)字. |
(?=name) | 匹配名為name的組. (?P…). |
(?#comment) | 批注 –括號中的內(nèi)容在匹配時將被忽略。 |
3 特殊符號
符號 | 解釋 |
---|---|
\s | 匹配空格. 注意,會匹配標記的末尾. 使用 [[:blank:]] 來避免匹配新一行。 |
\S | 匹配非空白 |
\w | 匹配單詞字符 |
\W | 匹配非單詞字符 |
\d | 匹配數(shù)字字符 |
\D | 匹配非數(shù)字字符 |
\b | 匹配單詞邊界. ‘\bW\w+’ 找到W開頭的單詞 |
\B | 匹配非單詞邊界. ‘\Be\B+’ – 找到位于單子中間的字母’e’ |
\< | This matches the start of a word using Scintilla’s definitions of words. |
> | This matches the end of a word using Scintilla’s definition of words. |
\x | 運行用x來表達可能具有其他意思的字符。例如, [ 用來插入到文本中作為[ 而不是作為字符集的開始. |
4 字符類
符號 | 解釋 |
---|---|
[[:alpha:]] | 匹配字母字符: [A-Za-z] |
[[:digit:]] | 匹配數(shù)字字符: [0-9] |
[[:xdigit:]] | 匹配16進制字符: [0-9A-Fa-f] |
[[:alnum:]] | 匹配字母數(shù)字字符: [0-9A-Za-z] |
[[:lower:]] | 匹配小寫字符: [a-z] |
[[:upper:]] | 匹配大寫字符: [A-Z] |
[[:blank:]] | 匹配空白 (空格 or tab):[ \t] |
[[:space:]] | 匹配空白字符:[ \t\r\n\v\f] |
[[:punct:]] | 匹配標點字符: [-!”#$%&’()*+,./:;<=>?@[]_`{ |
[[:graph:]] | 匹配圖形字符: [\x21-\x7E] |
[[:print:]] | 匹配可打印的字符 (graphical characters and spaces) |
[[:cntrl:]] | 匹配控制字符 |
5 替換操作
使用正則表達式的標記,通過()來包圍想要用的字符,然后用\1 來替換字符串,第一個匹配文本。
例如:
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 |
其他方法:
想要把除了 “無敵大奶爸” 之外的所有內(nèi)容去除。怎么做?
還是Ctrl+F,然后把不是無敵大奶爸的內(nèi)容一個個輸進去,在替換成空白,重復這個操作,
直到所有雜物排除掉。就可以搜到無敵大奶爸了。
逐個鏟除多余的
最后得到干凈的奶爸(這個反向查找不是反選別誤會)
但這個始終是指標不治本,如果雜物更更更更多??!
沒事,正則表達式出動吧!
我們撤銷到剛才的凌亂狀態(tài),然后還是查找F,查找模式選擇:正則表達式。
然后查找目標輸入這個:
????無\S+敵\S+大\S+奶\S+爸
這樣就能查到從無開始到爸結(jié)尾,中間穿插敵大奶的地方了。
\S?=代表匹配任何一個字符,大寫的。
\S+就是匹配任何一個字符包括往后的任何字符。一行內(nèi)。
所以他會按照這個搜索: 無XX敵XX大XX奶XX爸
然后我們直接將他替代成: 無敵大奶爸,在搜索,就能找到所有的大奶爸了。
原來不止一個大奶爸
*******??!無敵大大大大奶爸也會被搜索出來!
無XX敵XX大XX奶XX爸有個弊端就是,如果里面有相同的字也會被忽略掉。
比如:?無XX敵敵X大大大X奶XX爸 =>?無敵大奶爸
這樣原本不是一個真的奶爸也會因為中間去掉了字數(shù)變成大奶爸,怎么辦?
嗯哼?如果這樣的話,我推薦你用兩個字之間來逐個搜索了。
或者用人的智慧眼來分析唄,大家都是字,何必互相為難。
那我就用: ??無\W+敵\W+大\W+奶\W+爸
\W =?匹配任何非單詞字符。等價于“[^A-Za-z0-9_]”,后面跟 + 號同上,往后擴展。
這樣我就只改英文字符和數(shù)字下劃線等,無視中文,無敵大大大跟我沒關(guān)系了?。?/p>
關(guān)于其他好玩的正則表達式,可以參考百度自己按??梢愿臄?shù)字,改標點XXX一大堆。
這里就不說了。
高級替代: 改變包含在其中的內(nèi)容
想改包含在中間的某幾個數(shù)字。
"display": {
"thirdperson_righthand": {
"rotation": [89, 180, 0],
"translation": [-5.75, 0, -4]
},
目標:想把 [?,x,?]?里的數(shù)字改成別的數(shù)字怎么做?
"display": {
"thirdperson_righthand": {
"rotation": [89, abc, 0],
"translation": [-5.75, abc, -4]
},
如果你要一個個替代 [] 里的內(nèi)容,字數(shù)躲起來會很麻煩.
所以干脆直接用正則表達式解決。
搜索: ?, \d+, ?替換成 , 233,?????(借助兩個逗號定位來獲取中間的數(shù)字 \d 代表0-9的數(shù)字)
其他方法:
刪除“123”之后的所有字符用:
123.*?$
刪除“123”之前的所有字符用:
文章來源:http://www.zghlxwxcb.cn/news/detail-724637.html
^.*123
1、按組合鍵Ctrl + F,查找模式選擇 '正則表達式',不選 '.匹配新行'
2、查找目標輸入 :
^.*關(guān)鍵字.*\r?\n (不保留空行)
^.*關(guān)鍵字.*$ (保留空行)
3、替換為:(空)
文章來源地址http://www.zghlxwxcb.cn/news/detail-724637.html
到了這里,關(guān)于notepad++ 批量替換刪除指定字符之后 或者 之前的字符,Notepad+批量替換使用大全的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!