在 calibre 中自動排列集數的方法


 

在 calibre 匯入書本時常常會發現書本的集數很混亂,事後要修改時都會覺得很麻煩。

因此我研究了一下使用正規表達式來自動篩出書名的方法。


先給大家看看表達式。

表達式:[^\d]

解釋:

\d: 數字

[^....]: 符合的以外 (NOT)


這個表達式的意思是:不要找出數字或是符號。

因為 calibre 是搜尋取代模式,會將符合的值取出來,然後取代成底下輸入的值。

所以我們反過來操作,把集數以外的部分取出來,就只會留下集數了!


詳細步驟很簡單!


先選取想要的書籍,右鍵>批次地編輯詮釋資料

接著在搜尋模式選:正規表達式

搜尋欄位處選:title、目的端欄位選:series_index

搜尋欄輸入:[^\d]

確認之後就可以看到集數已經套用上去囉。

之後就可以以集數排列書本囉。

大部分的時候 [^\d] 就可以解決問題囉。

不過如果出現特殊的狀況,就要看情況解決了。


在這個情況下,書名中有小數點。

如果只用 [^\d],就會把 14.5 變成 145。所以就必須要微調一下表達式了。

表達式:[^\d|[:punct:]]

解釋:

\d: 數字

[:punct:]: 符號

[^....]: 符合的以外 (NOT)

|: OR


不過 [:punct:] 有它的侷限性~ 有的時候沒辦法發揮作用。

 



這時候把 [ ] 內容替換成想要拿掉的值就可以囉。




參考:

https://stackoverflow.com/questions/41311605/regex-for-matching-all-non-words-except-punctuation

https://support.google.com/a/answer/1371415?hl=zh-Hant



留言

熱門文章