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