質問
ダッシュなしでISBN番号(10桁と13桁)があります。今、私はそれらのダッシュを自動的に追加する方法を探しています。
ここでいくつかの有用な情報を見つけました:http://www.isbn.org/standards/home/isbn/international/hyphenation-instructions.asp
しかし、パブリッシャーの識別子の長さはランダムな長さであり、それを知らずに、ダッシュの正しい位置を決定することはできないため、それがまったく実行可能かどうかはわかりません。
どういうわけかそれが可能かどうか知っている人はいますか?
どうもありがとう!
解決
あなたが持っている場合、あなたは出版社の識別子の長さを推測することができます フルレンジテーブル.
例1. ISBN 0141439564(ペンギン: 大いなる遺産)
- グループ識別子は0(英語)です。
- このグループの出版社の範囲は、00〜19、200–699、7000–8499、85000–89999、900000-94999、および9500000–999999です。
- 次の2桁は14で、これは00〜19の範囲にあるため、出版社には2桁があります。
- したがって、ハイフンの形は0-14-143956-4です
例2. ISBN 2253004227(Poche: ゲルミナル)
- グループ識別子は2(フランス語)です
- このグループの出版社の範囲は、00〜19、200–349、35000–39999、400–699、7000–8399、84000–8999、900000–949999、9500000-9999999です。
- 次の3桁は253で、200〜349の範囲にあるため、出版社には3桁があります
- したがって、ハイフンの形は2-253-00422-7です
議会図書館でアルゴリズムを確認できます ISBNハイフネーションツール.
他のヒント
Pythonの場合、ライブラリを使用できます python-stdnum, イスブニッド また ISBN_HYPHENATE. 。彼らはISBNをハイフンにすることができ、他の答えに記載されている範囲テーブルを使用します。
私は次のJavaScript関数をHyphenate ISBNSに書きました(私もあることを知っています isbnjs, 、しかし、これはよりコンパクトで、私が思う他のプロジェクトに含めるのが簡単です)。
を見てみましょう https://pypi.python.org/pypi/isbntools, 、抽出、清掃、変換、メタデータの取得など、ISBNなどを「ハイフン酸」することを可能にします。
これはライブラリ(プログラムで使用できる)ですが、コマンドラインから使用できるいくつかの「スクリプト」をインストールします。