如何自动应用ISBN连字?

时间:2010-11-11 13:10:26

标签: isbn hyphenation

我有没有破折号的ISBN号码(10位数和13位数)。 现在我正在寻找一种自动添加破折号的方法。

我在这里找到了一些有用的信息: http://www.isbn.org/standards/home/isbn/international/hyphenation-instructions.asp

但我不确定它是否可行,因为 发布者标识符具有随机长度,没有 知道它,可能无法确定 破折号的正确位置。

有人知道某种可能吗?

非常感谢!

4 个答案:

答案 0 :(得分:10)

如果您拥有full range tables,则可以推断出版商标识符的长度。

示例1. ISBN 0141439564(企鹅:远大前程

  • 组标识符为0(英语)。
  • 此论坛的发布商范围为00-19,200-699,7000-8499,85000-89999,900000-949999和9500000-9999999
  • 接下来的两位数字是14,位于00-19范围内,因此发布商有2位数字。
  • 因此连字符形式为0-14-143956-4

示例2. ISBN 2253004227(Poche:Gérminal

  • 组标识符为2(法语)
  • 此论坛的发布商范围为00-19,200-349,35000-39999,400-699,7000-8399,84000-89999,900000-949999,9500000-9999999
  • 接下来的三位数是253,在200-349范围内,所以发布商有3位数
  • 因此连字符形式为2-253-00422-7

您可以在美国国会图书馆ISBN hyphenation tool查看您的算法。

答案 1 :(得分:4)

对于Python,您可以使用库python-stdnumisbnidisbn_hyphenate。它们可以连字符号,并使用其他答案中提到的范围表。

答案 2 :(得分:1)

我编写了以下JavaScript函数来连接ISBN(我知道还有isbnjs,但这更紧凑,更容易包含在我认为的其他项目中。)

https://gist.github.com/aurimasv/6693537

答案 3 :(得分:1)

看看https://pypi.python.org/pypi/isbntools,它将允许您“连字”ISBN以及更多内容,例如提取,清理,转换和获取元数据。

这是一个库(您可以在程序中使用),但它会安装几个可以在命令行中使用的“脚本”。