github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/regexp/syntax/doc.go (about) 1 // Copyright 2012 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Code generated by mksyntaxgo from the RE2 distribution. DO NOT EDIT. 6 7 /* 8 パッケージ構文は正規表現を解析木に解析し、解析木をプログラムにコンパイルします。通常、正規表現のクライアントはこのパッケージではなく、[regexp] パッケージ([regexp.Compile] や [regexp.Match] など)の機能を使用します。 9 10 # 構文 11 12 [Perl] フラグを使用して解析する場合、このパッケージが理解する正規表現の構文は次のとおりです。[Parse] に代替フラグを渡すことで、構文の一部を無効にすることもできます。 13 14 単一の文字: 15 16 . 任意の文字を含む文字(改行も含む)(フラグs=true) 17 [xyz] 文字クラス 18 [^xyz] 否定文字クラス 19 \d Perl文字クラス 20 \D 否定Perl文字クラス 21 [[:alpha:]] ASCII文字クラス 22 [[:^alpha:]] 否定ASCII文字クラス 23 \pN Unicode文字クラス(一文字の名前) 24 \p{Greek} Unicode文字クラス 25 \PN 否定Unicode文字クラス(一文字の名前) 26 \P{Greek} 否定Unicode文字クラス 27 28 複合: 29 30 xy xの後にy 31 x|y xまたはy(xを優先) 32 33 繰り返し: 34 35 x* xを0回以上、できれば多くの回繰り返す 36 x+ xを1回以上、できれば多くの回繰り返す 37 x? xを0回または1回、できれば1回繰り返す 38 x{n,m} nまたはn+1または...またはm個のxを、できれば多くの回繰り返す 39 x{n,} n個以上のxを、できれば多くの回繰り返す 40 x{n} 正確にn個のx 41 x*? xを0回以上、できれば少ない回繰り返す 42 x+? xを1回以上、できれば少ない回繰り返す 43 x?? xを0回または1回、できれば0回繰り返す 44 x{n,m}? nまたはn+1または...またはm個のxを、できれば少ない回繰り返す 45 x{n,}? n個以上のxを、できれば少ない回繰り返す 46 x{n}? 正確にn個のx 47 48 実装の制約:x{n,m}、x{n,}、およびx{n}の計数形式は、最小または最大の反復回数が1000を超える形式を拒否します。制限は無制限の繰り返しには適用されません。 49 50 グループ化: 51 52 (re) 番号付きのキャプチャグループ(サブマッチ) 53 (?P<name>re) 名前付き&番号付きのキャプチャグループ(サブマッチ) 54 (?<name>re) 名前付き&番号付きのキャプチャグループ(サブマッチ) 55 (?:re) キャプチャしないグループ 56 (?flags) 現在のグループ内でフラグを設定する;キャプチャしない 57 (?flags:re) re中にフラグを設定する;キャプチャしない 58 59 フラグの構文はxyz(設定)または-xyz(解除)またはxyz(設定)-z(解除)です。フラグは次のとおりです: 60 61 i 大文字小文字を区別しない(デフォルトはfalse) 62 m マルチラインモード:~、$はテキストの始まり/終わりに加えて行の始まり/終わりにもマッチする(デフォルトはfalse) 63 s .が\nにもマッチする(デフォルトはfalse) 64 U マッチングの優先度を反転させる:x*とx*?やx+とx+?などの意味を入れ替える(デフォルトはfalse) 65 66 空の文字列: 67 68 ^ テキストまたは行の先頭(フラグm=true) 69 $ テキストの終わり(\zではなく)または行の終わり(フラグm=true) 70 \A テキストの先頭 71 \b ASCIIの単語の境界(片側は\w、他側は\W、\A、または\z) 72 \B ASCIIの単語の境界ではない 73 \z テキストの終わり 74 75 エスケープシーケンス: 76 77 \a ベル(== \007) 78 \f 改ページ(== \014) 79 \t 水平タブ(== \011) 80 \n 改行(== \012) 81 \r キャリッジリターン(== \015) 82 \v 垂直タブ文字(== \013) 83 \* リテラルの*(任意の句読点文字用) 84 \123 8進数の文字コード(最大3桁まで) 85 \x7F 16進数の文字コード(正確に2桁) 86 \x{10FFFF} 16進数の文字コード 87 \Q...\E 句読点を含む場合でも、リテラルのテキスト... 88 89 文字クラス要素: 90 91 x 単一の文字 92 A-Z 文字範囲(包括的) 93 \d Perl文字クラス 94 [:foo:] ASCII文字クラスfoo 95 \p{Foo} Unicode文字クラスFoo 96 \pF Unicode文字クラスF(一文字の名前) 97 98 文字クラス要素としての名前付き文字クラス: 99 100 [\d] 数字(== \d) 101 [^\d] 数字以外(== \D) 102 [\D] 数字以外(== \D) 103 [^\D] 英数字以外(== \d) 104 [[:name:]] 文字クラス[:name:]内の名前付きASCIIクラス(== [:name:]) 105 [^[:name:]] 否定文字クラス[:name:]内の名前付きASCIIクラス(== [:^name:]) 106 [\p{Name}] 文字クラス内の名前付きUnicodeプロパティ(== \p{Name}) 107 [^\p{Name}] 否定文字クラス内の名前付きUnicodeプロパティ(== \P{Name}) 108 109 Perl文字クラス(すべてASCIIのみ): 110 111 \d 数字(== [0-9]) 112 \D 数字以外(== [^0-9]) 113 \s 空白(== [\t\n\f\r ]) 114 \S 空白以外(== [^\t\n\f\r ]) 115 \w 単語の文字(== [0-9A-Za-z_]) 116 \W 単語の文字以外(== [^0-9A-Za-z_]) 117 118 ASCII文字クラス: 119 120 [[:alnum:]] 英数字(== [0-9A-Za-z]) 121 [[:alpha:]] 英字(== [A-Za-z]) 122 [[:ascii:]] ASCII(== [\x00-\x7F]) 123 [[:blank:]] 空白(== [\t ]) 124 [[:cntrl:]] 制御文字(== [\x00-\x1F\x7F]) 125 [[:digit:]] 数字(== [0-9]) 126 [[:graph:]] グラフィカル(== [!-~] == [A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]) 127 [[:lower:]] 小文字(== [a-z]) 128 [[:print:]] 印刷可能(== [ -~] == [ [:graph:]]) 129 [[:punct:]] 句読点(== [!-/:-@[-`{-~]) 130 [[:space:]] 空白(== [\t\n\v\f\r ]) 131 [[:upper:]] 大文字(== [A-Z]) 132 [[:word:]] 単語の文字(== [0-9A-Za-z_]) 133 [[:xdigit:]] 16進数の数字(== [0-9A-Fa-f]) 134 135 Unicode文字クラスは、[unicode.Categories] および [unicode.Scripts] のものです。 136 */ 137 package syntax