2016-05-31 112 views
0

我想寫一個正則表達式用於在Calibre(python)中查找標題中括號中的系列名稱的電子書。我有一個系列的名稱和標題由「〜」分隔的自定義列,例如:正則表達式在第二部分找到字符串的第一部分?

"The Series~The Book Title (The Series)" 

盡我所能想出括號在標題中發現任何與該系列的名字至少一個字母:

(.+)~.*[\(\1\)].* 

我只是想找到那些有字符串的第一部分的括號內的全在第二部分的結尾,它可以包含額外的信息。

謝謝。

+0

刪除方括號並放置最後一個*。 –

回答

0

這個工程在記事本++:

(.+)~[^\(]*\(\1\).* 

我不知道它會工作相同的蟒蛇,但正則表達式處理器通常很相似,所以嘗試一下。

0

你的正則表達式是非常接近,你可以改變一點點你的正則表達式,並有這樣的:

(.+?)~.*[([]\1[)\]].* 

Working demo

Regular expression visualization

這會匹配字符串:

The Series~The Book Title (The Series) 
The Series~The Book Title [The Series] 

但是,如果你只是想匹配paretheses的話,那麼你可以有:

(.+?)~.*[(]\1[)].* 
or 
(.+?)~.*\(\1\).* 

Working demo

Regular expression visualization

0

感謝您的建議。他們在python演示中完美工作,但由於某些未知原因,在Calibre中不起作用。看起來像一個角色是最能匹配捕捉組的角色。必須是Caliber使用的正則表達式系統中的限制。

相關問題