1. 程式人生 > >正則化與萬用字元便於查詢和替換批量處理,使用在word,notepad++等文字編輯器中

正則化與萬用字元便於查詢和替換批量處理,使用在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*
    b,可以匹配 runob、runoob、runoooooob 等
  • ?:? 問號代表前面的字元最多隻可以出現一次(0次、或1次);colou?r 可以匹配 color 或者 colour,

普通字元:普通字元包括沒有顯式指定為元字元的所有可列印和不可列印字元。這包括所有大寫和小寫字母、所有數字、所有標點符號和一些其他符號。

正則表示式是由普通字元(例如字元 a 到 z)以及特殊字元(稱為"元字元")組成的文字模式。模式描述在搜尋文字時要匹配的一個或多個字串。正則表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。

特殊字元:所謂特殊字元,就是一些有特殊含義的字元,如上面說的 runoo*b 中的 *,簡單的說就是表示任何字串

的意思。如果要查詢字串中的 * 符號,則需要對 * 進行轉義,即在其前加一個 \: runo\*ob 匹配 runo*ob。許多元字元要求在試圖匹配它們時特別對待。若要匹配這些特殊字元,必須首先使字元"轉義",即,將反斜槓字元\ 放在它們前面。

字元 描述
\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了。