2016-05-31 76 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使用的正则表达式系统中的限制。

相关问题