5

こんにちは、私は常に.xsdで XML の正規表現を作成しようとしています。

この式は ISBN-13 番号を検証するはずですが、これ以上のことはできませんでした:

ISBN (978|979)[ |-][0-9]{1,5}[ |-][0-9]{1,7}[ |-][0-9]{1,7}[0-9]{1}

誰かが正しい ISBN13 を入力すれば問題ありませんが、さらに長い ISBN を作成することも可能です (たとえば、最初のブロックの数字を 5 桁、2 番目のブロックを 7 桁、3 番目のブロックを 7 桁にすることも可能です)。桁の長さ)。

私はこのトピックに非常に慣れていないため、この問題を解決できません。したがって、誰かが私を助けてくれるか、私の問題を解決してくれることを願っています。

ISBN 13 が何で構成されているかは知っていますが、ウィキペディアや他の Web サイトをチェックしましたが、実際の問題はそれ自体の正規表現です。

これが以前に尋ねられなかったことを願っているので、誰かが以前にこの質問をした場合は申し訳ありません. jajay07

4

3 に答える 3

7

http://regexlib.com/REDetails.aspx?regexp_id=1747によると、正規表現

ISBN(-1(?:(0)|3))?:?\x20+(?(1)(?(2)(?:(?=.{13}$)\d{1,5}([ -])\d{1,7}\3\d{1,6}\3(?:\d|x)$)|(?:(?=.{17}$)97(?:8|9)([ -])\d{1,5}\4\d{1,7}\4\d{1,6}\4\d$))|(?(.{13}$)(?:\d{1,5}([ -])\d{1,7}\5\d{1,6}\5(?:\d|x)$)|(?:(?=.{17}$)97(?:8|9)([ -])\d{1,5}\6\d{1,7}\6\d{1,6}\6\d$)))

古い10桁のISBNと新しい13桁のISBNの両方に一致します。

この正規表現の必要な部分を簡単に(おそらくそれほど簡単には)使用できません。

于 2010-12-07T21:02:52.027 に答える
4
ISBN(?:-13)?:?\x20*(?=.{17}$)97(?:8|9)([ -])\d{1,5}\1\d{1,7}\1\d{1,6}\1\d$

一致する必要があります:
ISBN-13:978-1-4028-9462-6
ISBN:978-1-4028-9462-6
ISBN-13 978-1-4028-9462-6
ISBN 978-1-4028-9462-6

于 2010-12-07T21:04:15.087 に答える
2

xFront のISBNも参照してください。

ISBN の XML スキーマ simpleType 定義を作成しました。この ISBN 定義は、世界中の ISBN のすべての法的形式をカバーしています。

于 2010-12-10T13:50:35.427 に答える