【问题标题】:How to automatically apply ISBN hyphenation?如何自动应用 ISBN 断字?
【发布时间】:2010-11-11 13:10:25
【问题描述】:

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

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

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

有人知道这是否可能吗?

非常感谢!

【问题讨论】:

    标签: isbn hyphenation


    【解决方案1】:

    如果您有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:Germinal

    • 组标识符为 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 查看您的算法。

    【讨论】:

    • 好的,感谢您的意见。我现在找到了这个,想知道是否有办法在不使用完整库的情况下确定破折号的位置:isbntools.com/details.html
    • 我相信您需要完整范围的表格,因为每个组的发布者范围都不同。
    • 是的,我担心。 xD 无论如何谢谢 - 让它变得更复杂一点。
    • 国会图书馆给出了不能连字符的错误,但 ISBN official website's tool 提供了帮助
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        看看https://pypi.python.org/pypi/isbntools,它可以让您对 ISBN 进行“连字符”以及更多操作,例如提取、清理、转换和获取元数据。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-23
          • 2013-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多