記一次正規表示式實戰,給pdf加目錄

jeepc發表於2018-05-30

       一本書如果沒有目錄總覺得沒有安全感,讀起來也不方便。往往我們下載的一些pdf是沒目錄的。PdgCntEditor是一個很好用輕量級的pdf目錄編輯器。但是這些書的目錄往往很多,手動編輯會很麻煩。所以我常常都會去搜尋該書的目錄(帶有頁碼),一般豆瓣讀書或者百度百科可以搜到。這個帶頁碼的目錄一般會有一個問題,就是頁碼前是空格而不是tab,這就導致目錄無法正常使用。
       以上是背景,有點羅嗦。總結就是我們要將目錄中頁碼前面的空格替換為tab。此時正規表示式是一個很好的工具。首先是搜尋部分,很簡單就是" [0-9]+" (注意'['前面有個空格),這個表示式的意思是搜尋一個字串,這個字串包含一個空格和多個數字('+'表示多個)。接著是替換部分,注意這裡是部分替換,因為我們要保留這些數字,也就是頁碼。於是我去搜尋正規表示式部分替換,搜到這篇文章《正規表示式的部分替換 $1~$99》,其中的關鍵是既然是部分替換,就要把表示式分成幾個部分。
       於是,我們得到最終答案,搜尋部分:"( )([0-9]+)"(這裡利用括號將表示式分為兩個部分),替換部分:" $2"(注意$2前面是一個tab,這裡是在編輯器打了一個tab然後複製,有些編輯器支援將tab寫成'\t',但是PdgCntEditor不支援)。
       總結:這篇文章全是廢話,講的案例也非常簡單,那它的意義是什麼呢?對於一個熟練掌握正規表示式的人來說,它確實一點用沒有。但是對於新手,對於那些對正則敬而遠之的人來說,它在述說一個道理,學正則是一個有用的且並不困難的事情。即使是最複雜的表示式,我們也可以將其拆成一個個簡單的部分。

相關文章