0

我正在尝试在我的 Mac 上使用 Calibre 来组织我的电子书库。

作为一个暑期个人项目,我在电脑和手机上创建了各种我侄子和侄女学校报告的 epub 作为纪念品。我将文件标记为:Title_Last Name, First Name.epub

例如:关于 ATP Cycle_Doe、John.epub 的报告

使用 Calibre 我发现您可以从文件名配置元数据:链接

例如:

(?P<title>.+) - (?P<author>[^_]+)

仅当文件名为:Title - First Name Last Name.epub 时才有效

我试过了:

(?P<title>.+)[^\w](?P<author>[^_]+)

它将返回标题为:关于 ATP Cycle Doe
的报告,作者为:John

谁能帮我找出一个正则表达式来从我使用的文件名约定中提取标题和作者?

这样的标题是:关于ATP循环
的报告作者是:John Doe

非常感谢。

4

1 回答 1

0

用这个:

^(?P<title>[^_]+)_(?P<author>.*)\.epub$

Regex Demo中,查看右侧窗格中的命名组。

解释

  • ^锚断言我们在字符串的开头
  • (?P<title>[^_]+)捕获不是title捕获组下划线的字符
  • (?P<author>.*)将任何字符捕获到author捕获组
  • \.epub火柴.epub
  • $锚断言我们在字符串的末尾

变化

如果由于某种原因正则表达式不应该与.epub扩展名匹配,请改用:

^(?P<title>[^_]+)_(?P<author>[.^]+)
于 2014-07-31T10:05:03.270 回答