2010-11-11 19 views
12

Tôi đã có số ISBN (10 chữ số và 13 chữ số) mà không có dấu gạch ngang. Bây giờ tôi đang tìm cách thêm dấu gạch ngang tự động.Làm cách nào để tự động áp dụng dấu gạch ngang ISBN?

Tôi tìm thấy một số thông tin hữu ích ở đây: http://www.isbn.org/standards/home/isbn/international/hyphenation-instructions.asp

Nhưng tôi không chắc chắn nếu nó doable ở tất cả, bởi vì các định danh nhà xuất bản có chiều dài ngẫu nhiên, và không có biết nó, nó có lẽ không thể xác định vị trí chính xác cho dấu gạch ngang.

Có ai biết nếu có thể bằng cách nào đó không?

Cảm ơn rất nhiều!

Trả lời

7

Bạn có thể suy ra độ dài của số nhận dạng nhà xuất bản nếu bạn có full range tables.

Ví dụ 1. ISBN 0141439564 (Penguin: Great Expectations)

  • Từ định danh nhóm là 0 (bằng tiếng Anh).
  • Phạm vi nhà xuất bản cho nhóm này là 00–19, 200–699, 7000–8499, 85000–89999, 900000-949999 và 9500000–9999999
  • Hai chữ số tiếp theo là 14, nằm trong khoảng 00 –19, vì vậy nhà xuất bản có 2 chữ số.
  • Vì vậy, các hình thức gạch nối là 0-14-143956-4

Ví dụ 2. ISBN 2253004227 (Poche: mầm)

  • Từ định danh nhóm là 2 (tiếng Pháp)
  • Phạm vi nhà xuất bản cho nhóm này là 00–19, 200–349, 35000–39999, 400–699, 7000–8399, 84000–89999, 900000–949999, 9500000–9999999
  • Ba chữ số tiếp theo là 253, ở trong r ange 200-349, vì vậy các nhà xuất bản có 3 chữ số
  • Vì vậy, các hình thức gạch nối là 2-253-00422-7

Bạn có thể kiểm tra thuật toán của bạn tại Thư viện Quốc hội của ISBN hyphenation tool.

+0

Được rồi, cảm ơn bạn đã nhập. Tôi đã tìm thấy điều này ngay bây giờ, và đã tự hỏi nếu có một cách để xác định vị trí cho các dấu gạch ngang mà không sử dụng thư viện đầy đủ: http://isbntools.com/details.html – Thasmo

+0

Tôi tin rằng bạn cần các bảng đầy đủ, bởi vì phạm vi nhà xuất bản khác nhau đối với mỗi nhóm. –

+0

Vâng, tôi sợ điều đó. xD Cảm ơn anyway - làm cho nó phức tạp hơn một chút. – Thasmo

2

Đối với Python, bạn có thể sử dụng thư viện python-stdnum, isbnid hay isbn_hyphenate. Họ có thể gạch nối các ISBN và sử dụng bảng phạm vi được đề cập trong câu trả lời khác.

1

Hãy xem https://pypi.python.org/pypi/isbntools, nó sẽ cho phép bạn 'làm dấu ngang giữa hai chữ' ISBN và nhiều hơn nữa, giống như giải nén, cleanning, chuyển đổi, và nhận được siêu dữ liệu.

Đây là thư viện (bạn có thể sử dụng trong chương trình của mình) nhưng nó cài đặt một số 'tập lệnh' mà bạn có thể sử dụng từ dòng lệnh.

Các vấn đề liên quan