正則化與萬用字元便於查詢和替換批量處理,使用在word,notepad++等文字編輯器中
我們常常使用查詢替換的方式來處理相關資料,可是當你要批量替換隻用一些相同字元分文字時,就會顯得很笨拙。
比如:
Line 5974: DI 10.13182/NT96-A15844 Line 6078: DI 10.1109/ISIC.1996.556231 Line 6130: DI 10.1049/cp:19960530 Line 6159: DI 10.1016/0165-0114(95)00015-D Line 6283: DI 10.1111/j.1559-3584.1995.tb02576.x Line 6380: DI 10.13182/NSE94-A19021
我只要得到:
10.13182/NT96-A15844
10.1109/ISIC.1996.556231
10.1049/cp:19960530
等,
那麼應該如何替換呢???
下面我將使用正則化與萬用字元來進行替換
一鍵替換so easy
首先了解正則表示式:
- 正則表示式(regular expression)描述了一種字串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等
- + :+ 號代表前面的字元必須至少出現一次(1次或多次);runoo+b,可以匹配 runoob、runooob、runoooooob 等
- * : * 號代表字元可以不出現,也可以出現一次或者多次(0次、或1次、或多次)。runoo*
- ?:? 問號代表前面的字元最多隻可以出現一次(0次、或1次);colou?r 可以匹配 color 或者 colour,
普通字元:普通字元包括沒有顯式指定為元字元的所有可列印和不可列印字元。這包括所有大寫和小寫字母、所有數字、所有標點符號和一些其他符號。
正則表示式是由普通字元(例如字元 a 到 z)以及特殊字元(稱為"元字元")組成的文字模式。模式描述在搜尋文字時要匹配的一個或多個字串。正則表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。
特殊字元:所謂特殊字元,就是一些有特殊含義的字元,如上面說的 runoo*b 中的 *,簡單的說就是表示任何字串
字元 | 描述 |
---|---|
\cx | 匹配由x指明的控制字元。例如, \cM 匹配一個 Control-M 或回車符。x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個原義的 'c' 字元。 |
\f | 匹配一個換頁符。等價於 \x0c 和 \cL。 |
\n | 匹配一個換行符。等價於 \x0a 和 \cJ。 |
\r | 匹配一個回車符。等價於 \x0d 和 \cM。 |
\s | 匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。注意 Unicode 正則表示式會匹配全形空格符。 |
\S | 匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。 |
\t | 匹配一個製表符。等價於 \x09 和 \cI。 |
\v | 匹配一個垂直製表符。等價於 \x0b 和 \cK。 |
上面的查詢替換如下:
使用notepad++:\S為匹配任意字元
替換為
YES!
Everything is OK!
下面再word裡進行實踐:
在word裡替換選項裡選擇萬用字元
word中的任意字元為:?
關於word的萬用字元在查詢和替換介面左下角特殊格式中有,可以檢視。
接下來就是使用python的scihub.py進行批量下載pdf了。