我正在尝试设置我的口径(calibre-ebook.com)以自动从导入的pdf文件中获取数据到库中。 通常我用这种方式命名我的文件:
作者。标题。本地。出版商。发布时间。 ISBN.pdf
示例:
C:\ Test \RANCIÊRE,雅克。 O mestre ignorante。贝洛奥里藏特。 AUTENTICA。 2010. 978-85-7526-045-6.pdf
我试图获得第一个参数:作者,使用正则表达式:
([^\\]+)\.
我得到了这个值:
RANCIÊRE,雅克。 O mestre ignorante。贝洛奥里藏特。 AUTENTICA。 2010. 978-85-7526-045-6
由于从左到右读取的正则表达式不会在第一个点(。)上停止。?
此示例中的所需值为:
RANCIÊRE,Jacques
对其他字段的任何提示?标题的示例所需的值是:
O mestre ignorante
感谢您的建议!!!
答案 0 :(得分:0)
正则表达式捕获是贪婪的,这意味着它试图获得尽可能最大的匹配。试试非贪婪的版本:
([^\\]+?)\.
请注意,唯一的区别是添加了?
。
之后,您应该能够使用\1
检索作者的姓名(“RANCIÊRE,Jacques”)。
答案 1 :(得分:0)
^.+?\.
会为您提供C:\Test\RANCIÊRE, Jacques.
表示在第一个点之前获取所有字符。
如果您只想使用RANCIÊRE, Jacques
而不是:
(?!(.*\\))(.+?\.)
会给你RANCIÊRE, Jacques.