如何自动应用ISBN连字符?

23

我有ISBN号码(10位和13位),但没有连字符。

现在我正在寻找一种自动添加这些连字符的方法。

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

但是我不确定是否有可能实现,因为出版商标识符长度随机,如果不知道它的长度,可能无法确定连字符的正确位置。

是否有人知道是否有可能实现呢?

非常感谢!

4个回答

21
你可以通过全范围表来推断出出版商标识符的长度。
示例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:《日出东方》)
- 组识别码为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连字符化工具中检查您的算法。

好的,感谢您的输入。我现在找到了这个链接,并想知道是否有一种方法可以确定破折号的位置,而不使用整个库:http://isbntools.com/details.html - thasmo
我认为你需要完整的范围表格,因为每个组的发布者范围都不同。 - Gareth Rees
是的,我就怕这样。xD 不过还是谢谢你 - 这会让事情变得更加复杂。 - thasmo
国会图书馆报错无法进行连字处理,但ISBN官方网站的工具有所帮助。 - soshial

5

1
请看https://pypi.python.org/pypi/isbntools,它可以让你“连字符”ISBN以及提取、清理、转换和获取元数据等其他功能。
这是一个库(可在程序中使用),但它安装了几个“脚本”,可以从命令行中使用。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接