一本書如果沒有目錄總覺得沒有安全感,讀起來也不方便。往往我們下載的一些pdf是沒目錄的。PdgCntEditor是一個很好用輕量級的pdf目錄編輯器。但是這些書的目錄往往很多,手動編輯會很麻煩。所以我常常都會去搜尋該書的目錄(帶有頁碼),一般豆瓣讀書或者百度百科可以搜到。這個帶頁碼的目錄一般會有一個問題,就是頁碼前是空格而不是tab,這就導致目錄無法正常使用。
以上是背景,有點羅嗦。總結就是我們要將目錄中頁碼前面的空格替換為tab。此時正規表示式是一個很好的工具。首先是搜尋部分,很簡單就是" [0-9]+" (注意'['前面有個空格),這個表示式的意思是搜尋一個字串,這個字串包含一個空格和多個數字('+'表示多個)。接著是替換部分,注意這裡是部分替換,因為我們要保留這些數字,也就是頁碼。於是我去搜尋正規表示式部分替換,搜到這篇文章《正規表示式的部分替換 $1~$99》,其中的關鍵是既然是部分替換,就要把表示式分成幾個部分。
於是,我們得到最終答案,搜尋部分:"( )([0-9]+)"(這裡利用括號將表示式分為兩個部分),替換部分:" $2"(注意$2前面是一個tab,這裡是在編輯器打了一個tab然後複製,有些編輯器支援將tab寫成'\t',但是PdgCntEditor不支援)。
總結:這篇文章全是廢話,講的案例也非常簡單,那它的意義是什麼呢?對於一個熟練掌握正規表示式的人來說,它確實一點用沒有。但是對於新手,對於那些對正則敬而遠之的人來說,它在述說一個道理,學正則是一個有用的且並不困難的事情。即使是最複雜的表示式,我們也可以將其拆成一個個簡單的部分。
記一次正規表示式實戰,給pdf加目錄
相關文章
- 【記錄】正規表示式入門
- 正規表示式詳解及實戰
- 記一次正規表示式替換,使用 ideaIdea
- 對正規表示式的一些記錄
- EditPlus中的正規表示式 實戰(1)
- EditPlus中的正規表示式實戰(5)
- EditPlus中的正規表示式實戰(6)
- JS助記 ----- 正規表示式JS
- 正規表示式速查筆記筆記
- leetcode題目10之正規表示式匹配LeetCode
- JS常用正規表示式備忘錄JS
- JS筆記(15): 正規表示式JS筆記
- 正規表示式學習筆記筆記
- 正規表示式
- 正規表示式.
- 【譯】JS常用正規表示式備忘錄JS
- 20個實用正規表示式
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- Python筆記五之正規表示式Python筆記
- JavaScript正規表示式迷你書-筆記JavaScript筆記
- Python學習筆記 - 正規表示式Python筆記
- 《JavaScript 闖關記》之正規表示式JavaScript
- 【Python | 邊敲邊學邊記】第一次:正規表示式Python
- 表示式目錄樹
- 常用正規表示式
- JavaScript 正規表示式JavaScript
- MySQL正規表示式MySql
- 正規表示式(java)Java
- SQL正規表示式SQL
- python正規表示式Python
- 正規表示式合集
- 正規表示式(一)
- Python 正規表示式Python
- Python——正規表示式Python
- PHP正規表示式PHP
- 正規表示式概括
- javascript正規表示式JavaScript
- java正規表示式Java