<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 驗證 ISBN(國際標準書號)的 Java 正則表達式 > 原文: [https://howtodoinjava.com/regex/java-regex-validate-international-standard-book-number-isbns/](https://howtodoinjava.com/regex/java-regex-validate-international-standard-book-number-isbns/) 在此 Java 正則表達式教程中,我們將學習使用正則表達式來測試用戶是否輸入了有效的國際標準書號(ISBN)。 ## 有效的國際標準書號(ISBN) 國際標準書號(ISBN)是一個 13 位(或 10 位也是如此)的編號,用于唯一標識國際上出版的書籍和類書籍產品。 ISBN 的目的是從一個特定的出版商那里建立和識別一個書名或一個書名版本,并且該版本是唯一的,從而允許書商,圖書館,大學,批發商和發行商更有效地營銷產品。 每個 ISBN 均由 13 位數字(或 10 位數字)組成,并且每打印一次它都在字母 ISBN 之前。 該數字分為可變長度的四個部分,每個部分之間用連字符分隔。 ISBN 的四個部分如下: * 標識發布者的國家或地區分組的組或國家/地區標識符; * 發布者標識符,用于標識組中的特定發布者; * 標題標識符,用于標識特定標題或標題版本; * 校驗位是用于驗證 ISBN 的 ISBN 末尾的一位數字。 原始的 9 位標準書號(SBN)沒有注冊組標識符,但是將零(0)作為 9 位 SBN 的前綴會創建一個有效的 10 位 ISBN。 以下所有內容均可以視為有效的 ISBN 的示例: ```java ISBN 978-0-596-52068-7 ISBN-13: 978-0-596-52068-7 978 0 596 52068 7 9780596520687 ISBN-10 0-596-52068- 9 0-596-52068-9 ``` ## 驗證 ISBN 的正則表達式 為了驗證 ISBN,我們的正則表達式為: > ISBN-10 的正則表達式:`^(?:ISBN(?:-10)?:? )?(?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13}$)[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]$` > ISBN-13 的正則表達式:`^(?:ISBN(?:-13)?:? )?(?=[0-9]{13}$|(?=(?:[0-9]+[- ]){4})[- 0-9]{17}$)97[89][- ]?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9]$` > ISBN-10 或 ISBN-13 的正則表達式:`^(?:ISBN(?:-1[03])?:? )?(?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13}$|97[89][0-9]{10}$|(?=(?:[0-9]+[- ]){4})[- 0-9]{17}$)(?:97[89][- ]?)?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]$` 注意:您不能僅使用正則表達式來驗證 ISBN,因為最后一位是使用校驗和算法計算的。 本節中的正則表達式僅驗證 ISBN 的格式。 現在,我們使用一些演示 ISBN 編號測試我們的 ISBN 正則表達式。 ## 僅驗證 ISBN-10 格式 ```java List<String> isbns = new ArrayList<String>(); //Valid ISBNs isbns.add("0-596-52068-9"); isbns.add("0 512 52068 9"); isbns.add("ISBN-10 0-596-52068-9"); isbns.add("ISBN-10: 0-596-52068-9"); //Invalid ISBNs isbns.add("0-5961-52068-9"); isbns.add("11 5122 52068 9"); isbns.add("ISBN-13 0-596-52068-9"); isbns.add("ISBN-10- 0-596-52068-9"); String regex = "^(?:ISBN(?:-10)?:? )?(?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13}$)[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]$"; Pattern pattern = Pattern.compile(regex); for (String isbn : isbns) { Matcher matcher = pattern.matcher(isbn); System.out.println(matcher.matches()); } Output: true true true true false false false false ``` ## 僅驗證 ISBN-13 格式 ```java List<String> isbns = new ArrayList<String>(); //Valid ISBNs isbns.add("ISBN 978-0-596-52068-7"); isbns.add("ISBN-13: 978-0-596-52068-7"); isbns.add("978 0 596 52068 7"); isbns.add("9780596520687"); //Invalid ISBNs isbns.add("ISBN 11978-0-596-52068-7"); isbns.add("ISBN-12: 978-0-596-52068-7"); isbns.add("978 10 596 52068 7"); isbns.add("119780596520687"); String regex = "^(?:ISBN(?:-13)?:? )?(?=[0-9]{13}$|(?=(?:[0-9]+[- ]){4})[- 0-9]{17}$)97[89][- ]?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9]$"; Pattern pattern = Pattern.compile(regex); for (String isbn : isbns) { Matcher matcher = pattern.matcher(isbn); System.out.println(matcher.matches()); } Output: true true true true false false false false ``` ## 同時驗證 ISBN-10 和 ISBN-13 格式 ```java List<String> isbns = new ArrayList<String>(); //Valid ISBNs isbns.add("ISBN 978-0-596-52068-7"); isbns.add("ISBN-13: 978-0-596-52068-7"); isbns.add("978 0 596 52068 7"); isbns.add("9780596520687"); isbns.add("0-596-52068-9"); isbns.add("0 512 52068 9"); isbns.add("ISBN-10 0-596-52068-9"); isbns.add("ISBN-10: 0-596-52068-9"); //Invalid ISBNs isbns.add("ISBN 11978-0-596-52068-7"); isbns.add("ISBN-12: 978-0-596-52068-7"); isbns.add("978 10 596 52068 7"); isbns.add("119780596520687"); isbns.add("0-5961-52068-9"); isbns.add("11 5122 52068 9"); isbns.add("ISBN-11 0-596-52068-9"); isbns.add("ISBN-10- 0-596-52068-9"); String regex = "^(?:ISBN(?:-1[03])?:? )?(?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13}$|97[89][0-9]{10}$|(?=(?:[0-9]+[- ]){4})[- 0-9]{17}$)(?:97[89][- ]?)?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]$"; Pattern pattern = Pattern.compile(regex); for (String isbn : isbns) { Matcher matcher = pattern.matcher(isbn); System.out.println(matcher.matches()); } Output: true true true true true true true true false false false false false false false false ``` 我建議您使用上述簡單的正則表達式嘗試更多的 ISBN 變體,并讓我知道您的發現。 **祝您學習愉快!** **參考:** [http://en.wikipedia.org/wiki/International_Standard_Book_Number](https://en.wikipedia.org/wiki/International_Standard_Book_Number "isbn") [http://www.isbn.org/faqs_general_questions](http://www.isbn.org/faqs_general_questions "isbn")
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看