2017-07-29 1 views
0

次の正規表現をどのように解釈すべきか説明できる人がいれば感謝します。それはNamespaces in XML 1.0ためのW3C基準によるものであり、NCNameで([4])として定義:グループ化で正規表現の減算を解釈する方法

名 - (CHAR * ':' チャー*)/ * XML名、マイナス ":" */

リストに適用されたとき、私は、次のような、引き算を理解することができます。これは間違っている場合は、グループ(謝罪に適用されたときに[az- [aeiuo]](http://www.regular-expressions.info/charclasssubtract.htmlを参照)、すべての子音のリストを表す、ではなく

期間)を指定します。

コメントは正規表現をどのように解釈するべきかを示していますが、私は苦労しています。 「:」NCNameではNameマイナスであるために意図がある

  Name - (':') 

場合:なぜだけではない、なぜいずれかの側に必要なゼロ個以上の文字が(私はちょうど私のことを示す、別の質問をしていないよされています混乱の領域)?

私の事前の感謝を受け入れてください。

+1

これは「正規表現」ではなく、[BNF表記](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form)です。この表記法は、あなたが参照している[文書の](https://www.w3.org/TR/REC-xml/#sec-notation)でも説明されています。 – axiac

答えて

1

W3Cによって公開されたドキュメントは、EBNF Notationの亜種を使用して標準化された言語を記述しています。
XML Recommendation"6 Notation"セクションに記載されています。

あなたは掲載例:

NCName ::= Name - (Char* ':' Char*) /* An XML Name, minus the ":" */ 

それを読む方法:

  • NCNameがルールによって記述されるオブジェクトです。
  • ::=は、説明されているオブジェクトの名前(左側)を、それを記述する式(右側)で区切ります。
  • Nameは既にanother ruleで記述されているオブジェクトです。
  • -は除外記号です。 A - BEBNFは「Aと一致しますが、Bと一致しません」という意味です。
  • (...) - かっこがグループを作成します。それらの内部の式を単一の項目として動作させます。
  • Charは、ドキュメントにすでにanother ruleで記述されている別のオブジェクトです。基本的にUnicode文字を意味します。
  • * - 繰返しは、前の項目と0回以上一致します。
  • ':' - 一重引用符または二重引用符で囲まれた文字列は文字列リテラルです。それはそれ自身を表します。ここでは、コロン文字。一緒に入れて

、それはNCName:が含まれていないNameであることを意味します。

コメントは間違っているようです(または多分言葉が悪いかもしれません)。

+0

非常に役に立ちます。どうもありがとうございました! – CAnder

+0

この回答を修飾するために、使用されるEBNFの方言は、XML勧告のセクション6で定義されており、引用したWikipediaの記事に記載されている表記とは多くの詳細が異なります。使用中のEBNFの多くの方言があります。 –

+0

@MichaelKayはもちろんXML勧告で定義されています。私は答えを書いたときに私の目の前にそれを持っていました。私はそれを答えに入れると思ったが、忘れてしまったようだ。それを言わせていただきありがとうございます。 – axiac

関連する問題