argra****@users*****
argra****@users*****
2008年 12月 22日 (月) 19:59:27 JST
Index: docs/perl/5.10.0/perlreref.pod diff -u docs/perl/5.10.0/perlreref.pod:1.1 docs/perl/5.10.0/perlreref.pod:1.2 --- docs/perl/5.10.0/perlreref.pod:1.1 Mon Dec 22 04:08:37 2008 +++ docs/perl/5.10.0/perlreref.pod Mon Dec 22 19:59:26 2008 @@ -21,8 +21,8 @@ =end original -本ドキュメントは、Perl の正規表現のクイックリファレンスです。完全な情報は、 -L<perlre> と L<perlop>、また、本ドキュメントの +本ドキュメントは、Perl の正規表現のクイックリファレンスです。 +完全な情報は、L<perlre> と L<perlop>、また、本ドキュメントの L</"SEE ALSO"> セクションを参照してください。 =head2 OPERATORS @@ -36,8 +36,8 @@ =end original -C<=~> は正規表現が適用される変数を決定します。省略された -場合には、$_ が使われます。 +C<=~> は正規表現が適用される変数を決定します。 +省略された場合には、$_ が使われます。 $var =~ /foo/; @@ -49,7 +49,7 @@ =end original -C<!~> は正規表現が適用される変数を決定し、マッチの結果を反転します。 +C<!~> は正規表現が適用される変数を決定し、マッチの結果を反転します; マッチが成功すれば偽を返し、失敗すれば真を返します。 $var !~ /foo/; @@ -97,11 +97,10 @@ =end original -If 'pattern' is an empty string, the last I<successfully> matched -regex is used. Delimiters other than '/' may be used for both this -operator and the following ones. The leading C<m> can be omitted -if the delimiter is '/'. -(TBT) +'pattern' が空文字列なら、最後にマッチングに I<成功した> +正規表現が使われます。 +この演算子とそれに続くものの療法で、'/' 以外のデリミタも使えます。 +デリミタが '/' の場合は C<m> は省略できます。 =begin original @@ -111,10 +110,9 @@ =end original -C<qr/pattern/msixpo> lets you store a regex in a variable, -or pass one around. Modifiers as for C<m//>, and are stored -within the regex. -(TBT) +C<qr/pattern/msixpo> は、正規表現を変数に入れるか、順に回せるように +します。 +C<m//> と同じ修飾子が使えて、正規表現に保管されます。 =begin original @@ -124,13 +122,18 @@ =end original -C<s/pattern/replacement/msixpogce> substitutes matches of -'pattern' with 'replacement'. Modifiers as for C<m//>, -with one addition: -(TBT) +C<s/pattern/replacement/msixpogce> は、'pattern' でマッチしたものを +'replacement' で置き換えます。 +C<m//> と同じ修飾子が使えて、さらに一つ追加されます: + +=begin original e Evaluate 'replacement' as an expression +=end original + + e 'replacement' を式として評価します + =begin original 'e' may be specified multiple times. 'replacement' is interpreted @@ -138,9 +141,9 @@ =end original -'e' may be specified multiple times. 'replacement' is interpreted -as a double quoted string unless a single-quote (C<'>) is the delimiter. -(TBT) +'e' は複数回指定できます。 +'replacement' は、デリミタとしてシングルクォート (C<'>) が使われた場合を +除いて、ダブルクォートされた文字列として解釈されます。 =begin original @@ -149,9 +152,9 @@ =end original -C<?pattern?> is like C<m/pattern/> but matches only once. No alternate -delimiters can be used. Must be reset with reset(). -(TBT) +C<?pattern?> は C<m/pattern/> に似ていますが、一度だけマッチします。 +デリミタは変更できません。 +reset() でリセットしなければなりません。 =head2 SYNTAX @@ -179,29 +182,30 @@ =end original - \ 直後のキャラクタをエスケープします - . 改行を除く任意の一キャラクタにマッチします (/s が使われていない場合) + \ 直後の文字をエスケープします + . 改行を除く任意の一文字にマッチします (/s が使われていない場合) ^ 文字列(/m が使われている場合は行)の先頭にマッチします $ 文字列(/m が使われている場合は行)の末尾にマッチします * 先行する要素のゼロ回以上の繰り返しにマッチします + 先行する要素の一回以上の繰り返しにマッチします ? 先行する要素のゼロ回または一回の出現にマッチします {...} 先行する要素の繰り返しの範囲を指定します - [...] ブラケットの内側にあるキャラクタのいずれかにマッチします - (...) $1, $2... のために部分正規表現をグループ化してキャプチャします - (?:...) 部分正規表現をキャプチャすることなくグループ化します (cluster) + [...] ブラケットの内側にある文字のいずれかにマッチします + (...) $1, $2... のために部分正規表現をグループ化して捕捉します + (?:...) 部分正規表現を捕捉することなくグループ化します (クラスター) | 左右いずれかにある部分正規表現にマッチします - \1, \2, \3 ... N 番目のグループのテキスト - \g1 or \g{1}, \g2 ... Matches the text from the Nth group - \g-1 or \g{-1}, \g-2 ... Matches the text from the Nth previous group - \g{name} Named backreference - \k<name> Named backreference - \k'name' Named backreference - (?P=name) Named backreference (python syntax) -(TBT) + \1, \2, \3 ... N 番目のグループのテキストにマッチします + \g1 or \g{1}, \g2 ... N 番目のグループのテキストにマッチします + \g-1 or \g{-1}, \g-2 ... N 個前のグループのテキストにマッチします + \g{name} 名前つき後方参照 + \k<name> 名前つき後方参照 + \k'name' 名前つき後方参照 + (?P=name) 名前つき後方参照 (python の文法) =head2 ESCAPE SEQUENCES +(エスケープシーケンス) + =begin original These work as in normal strings. @@ -232,11 +236,11 @@ \n 改行 \r キャリッジリターン \t タブ - \037 任意の octal ASCII value - \x7f 任意の hexadecimal ASCII value - \x{263a} 幅広の十六進値 + \037 任意の 8 進 ASCII 値 + \x7f 任意の 16 進 ASCII 値 + \x{263a} ワイド 16 進値 \cx Control-x - \N{name} 名前つきキャラクタ + \N{name} 名前つき文字 =begin original @@ -249,12 +253,12 @@ =end original - \l 次のキャラクタを小文字にします - \u 次のキャラクタをTitlecase にします + \l 次の文字を小文字にします + \u 次の文字をタイトル文字にします \L \E まで小文字にします \U \E まで大文字にします - \Q \E までパターンのメタキャラクタを無効にします - \E modification を終了します + \Q \E までパターンのメタ文字を無効にします + \E 修正を終了します =begin original @@ -262,7 +266,7 @@ =end original -Titlecase については L</Titlecase> を参照してください。 +タイトル文字にについては L</Titlecase> を参照してください。 =begin original @@ -270,20 +274,34 @@ =end original -This one works differently from normal strings: -(TBT) +この 1 つは通常の文字列とは異なった働きをします: + +=begin original \b An assertion, not backspace, except in a character class +=end original + + \b 文字クラスの中以外では、表明であってバックスペースではありません + =head2 CHARACTER CLASSES (文字クラス) +=begin original + [amy] Match 'a', 'm' or 'y' [f-j] Dash specifies "range" [f-j-] Dash escaped or at start or end means 'dash' [^f-j] Caret indicates "match any character _except_ these" +=end original + + [amy] 'a', 'm', 'y' のいずれかにマッチ + [f-j] ダッシュは「範囲」を指定します + [f-j-] エスケープされるか、最初か最後にあるダッシュは「ダッシュ」を意味します + [^f-j] キャレットは「これら以外にマッチ」を示します + =begin original The following sequences work within or without a character class. @@ -292,10 +310,11 @@ =end original -The following sequences work within or without a character class. -The first six are locale aware, all are Unicode aware. See L<perllocale> -and L<perlunicode> for details. -(TBT) +以下のシーケンスは文字クラス内でもそれ以外でも動作します。 +最初の 6 つはロケールの影響を受け、全ては Unicode の影響を受けます。 +詳細については L<perllocale> と L<perlunicode> を参照してください。 + +=begin original \d A digit \D A nondigit @@ -309,6 +328,22 @@ \V A non vertical white space \R A generic newline (?>\v|\x0D\x0A) +=end original + + \d 数値 + \D 非数値 + \w 単語文字 + \W 非単語文字 + \s 空白文字 + \S 非空白文字 + \h 水平空白文字 + \H 非水平空白文字 + \v 垂直空白文字 + \V 非垂直空白文字 + \R 一般的な改行 (?>\v|\x0D\x0A) + +=begin original + \C Match a byte (with Unicode, '.' matches a character) \pP Match P-named (Unicode) property \p{...} Match Unicode property with long name @@ -316,14 +351,24 @@ \P{...} Match lack of Unicode property with long name \X Match extended Unicode combining character sequence +=end original + + \C 1 バイトにマッチする (Unicode では、'.' は文字にマッチする) + \pP P の名前の (Unicode) プロパティ + \p{...} 長い名前の Unicode プロパティにマッチする + \PP 非 P にマッチする + \P{...} 長い名前の Unicode プロパティがないものにマッチする + \X 拡張された Unicode の結合文字の並びにマッチする + =begin original POSIX character classes and their Unicode and Perl equivalents: =end original -POSIX character classes and their Unicode and Perl equivalents: -(TBT) +POSIX 文字クラスと、それに対する Unicode と Perl の相当物は: + +=begin original alnum IsAlnum Alphanumeric alpha IsAlpha Alphabetic @@ -341,21 +386,48 @@ word IsWord \w Alphanumeric plus _ (Perl extension) xdigit IsXDigit [0-9A-Fa-f] Hexadecimal digit +=end original + + alnum IsAlnum 英数字 + alpha IsAlpha 英字 + ascii IsASCII 任意の ASCII 文字 + blank IsSpace [ \t] 水平空白 (GNU 拡張) + cntrl IsCntrl 制御文字 + digit IsDigit \d 数字 + graph IsGraph 英数字と句読点 + lower IsLower 小文字 (ロケールと Unicode の影響を受けます) + print IsPrint 英数字と句読点と空白 + punct IsPunct 句読点 + space IsSpace [\s\ck] 空白 + IsSpacePerl \s Perl の空白の定義 + upper IsUpper 大文字 (ロケールと Unicode の影響を受けます) + word IsWord \w 英数字と _ (Perl 拡張) + xdigit IsXDigit [0-9A-Fa-f] 16 進数 + =begin original Within a character class: =end original -Within a character class: -(TBT) +文字クラスの中では: + +=begin original POSIX traditional Unicode [:digit:] \d \p{IsDigit} [:^digit:] \D \P{IsDigit} +=end original + + POSIX 伝統的 Unicode + [:digit:] \d \p{IsDigit} + [:^digit:] \D \P{IsDigit} + =head2 ANCHORS +(アンカー) + =begin original All are zero-width assertions. @@ -384,10 +456,16 @@ \A 文字列の先頭(/m には影響されません)にマッチします \Z 文字列の末尾(省略可能な改行の前)にマッチします \z 文字列の本当の末尾にマッチします - \G 前回の m//g のマッチした場所の末尾にマッチします Match where previous m//g left off + \G 前回の m//g のマッチした場所の末尾にマッチします + +=begin original \K Keep the stuff left of the \K, don't include it in $& +=end original + + \K \K の左側の内容を保存する; これは $& には含まれない + =head2 QUANTIFIERS (量指定子) @@ -398,8 +476,9 @@ =end original -Quantifiers are greedy by default -- match the B<longest> leftmost. -(TBT) +量指定子はデフォルトでは貪欲です -- 一番左から B<一番長く> マッチします。 + +=begin original Maximal Minimal Possessive Allowed range ------- ------- ---------- ------------- @@ -411,6 +490,17 @@ + +? ++ 1 or more times (same as {1,}) ? ?? ?+ 0 or 1 time (same as {0,1}) +=end original + + 最大 最小 所有格 範囲 + ------- ------- ---------- ------------- + {n,m} {n,m}? {n,m}+ 最低 n 回、m 回以内出現 + {n,} {n,}? {n,}+ 最低 n 回出現 + {n} {n}? {n}+ 正確に n 回出現 + * *? *+ 0 回以上 ({0,} と同じ) + + +? ++ 1 回以上 ({1,} と同じ) + ? ?? ?+ 0 回または 1 回 ({0,1} と同じ) + =begin original The possessive forms (new in Perl 5.10) prevent backtracking: what gets @@ -419,10 +509,9 @@ =end original -The possessive forms (new in Perl 5.10) prevent backtracking: what gets -matched by a pattern with a possessive quantifier will not be backtracked -into, even if that causes the whole match to fail. -(TBT) +(Perl 5.10 で導入された) 所有格はバックトラックを抑制します: +所有格量指定子が付いたパターンでマッチした場合、バックトラックはしません; +たとえこれによってマッチ全体が失敗することになってもです。 =begin original @@ -430,8 +519,7 @@ =end original -There is no quantifier {,n} -- that gets understood as a literal string. -(TBT) +{,n} という量指定子はありません -- これはリテラルな文字列として扱われます。 =head2 EXTENDED CONSTRUCTS @@ -471,36 +559,35 @@ =end original - (?#text) コメント - (?:...) Groups subexpressions without capturing (cluster) - (?imxs-imsx:...) オプションを有効/無効にする (m// 修飾子のものと同じ) - (?=...) ゼロ幅の肯定先読み表明 - (?!...) ゼロ幅の否定先読み表明 - (?<=...) ゼロ幅の肯定後読み表明 - (?<!...) ゼロ幅の否定後読み表明 - (?>...) 出来うる限りマッチし、バックトラックしない - (?|...) Branch reset - (?<name>...) Named capture - (?'name'...) Named capture - (?P<name>...) Named capture (python syntax) - (?{ code }) 埋め込みコード。 戻り値は $^R に格納されます - (??{ code }) 動的正規表現。戻り値は正規表現として扱われます - (?N) Recurse into subpattern number N - (?-N), (?+N) Recurse into Nth previous/next subpattern - (?R), (?0) Recurse at the beginning of the whole pattern - (?&name) Recurse into a named subpattern - (?P>name) Recurse into a named subpattern (python syntax) + (?#text) コメント + (?:...) 部分正規表現を捕捉することなくグループ化します (クラスター) + (?imxs-imsx:...) オプションを有効/無効にする (m// 修飾子のものと同じ) + (?=...) ゼロ幅の肯定先読み表明 + (?!...) ゼロ幅の否定先読み表明 + (?<=...) ゼロ幅の肯定後読み表明 + (?<!...) ゼロ幅の否定後読み表明 + (?>...) 出来うる限りマッチし、バックトラックしない + (?|...) 分岐のリセット + (?<name>...) 名前付き捕捉 + (?'name'...) 名前付き捕捉 + (?P<name>...) 名前付き捕捉 (python 文法) + (?{ code }) 埋め込みコード。 戻り値は $^R に格納されます + (??{ code }) 動的正規表現。戻り値は正規表現として扱われます + (?N) サブパターン番号 N に再帰する + (?-N), (?+N) N 個前/後のサブパターンに再帰する + (?R), (?0) パターン全体の先頭に再帰する + (?&name) 名前付きサブパターンに再帰する + (?P>name) 名前付きサブパターンに再帰する (python 文法) (?(cond)yes|no) - (?(cond)yes) Conditional expression, where "cond" can be: - (N) subpattern N has matched something - (<name>) named subpattern has matched something - ('name') named subpattern has matched something - (?{code}) code condition - (R) true if recursing - (RN) true if recursing into Nth subpattern - (R&name) true if recursing into named subpattern - (DEFINE) always false, no no-pattern allowed -(TBT) + (?(cond)yes) 条件式; "cond" で指定できるのは: + (N) サブパターン N が何かにマッチした + (<name>) 名前付きサブルーチンが何かにマッチした + ('name') 名前付きサブルーチンが何かにマッチした + (?{code}) コード条件 + (R) 再帰したら真 + (RN) N 番目のサブパターンに再帰したら真 + (R&name) 名前付きサブパターンに再帰したら真 + (DEFINE) 常に偽; パターンなしは許されない =head2 VARIABLES @@ -534,10 +621,9 @@ =end original - ${^PREMATCH} Everything prior to matched string - ${^MATCH} Entire matched string - ${^POSTMATCH} Everything after to matched string -(TBT) + ${^PREMATCH} マッチした文字列に先行する部分 + ${^MATCH} マッチした文字列全体 + ${^POSTMATCH} マッチした文字列に後続する部分 =begin original @@ -551,14 +637,16 @@ =end original -The use of C<$`>, C<$&> or C<$'> will slow down B<all> regex use -within your program. Consult L<perlvar> for C<@-> -to see equivalent expressions that won't cause slow down. -See also L<Devel::SawAmpersand>. Starting with Perl 5.10, you -can also use the equivalent variables C<${^PREMATCH}>, C<${^MATCH}> -and C<${^POSTMATCH}>, but for them to be defined, you have to -specify the C</p> (preserve) modifier on your regular expression. -(TBT) +C<$`>, C<$&>, C<$'> のいずれかを使うと、プログラム中の B<全ての> 正規表現の +速度が低下します。 +速度低下を引き起こさない、等価な表現のためには、L<perlvar> の C<@-> を +調べてみてください。 +また、L<Devel::SawAmpersand> も参照してください。 +Perl 5.10 から、等価な変数である C<${^PREMATCH}>, C<${^MATCH}>, +C<${^POSTMATCH}> も使えますが、これらが定義されるには、正規表現に +C</p> (保存(preserve)) 修飾子をつける必要があります。 + +=begin original $1, $2 ... hold the Xth captured expr $+ Last parenthesized pattern match @@ -569,17 +657,29 @@ %+ Named capture buffers %- Named capture buffers, as array refs +=end original + + $1, $2 ... X 番目の捕捉された式を保持します + $+ 最後にかっこで囲まれたパターンマッチ + $^N 最も近くに閉じた捕捉を保持します + $^R 最後の (?{...}) 式の結果を保持します + @- グループの先頭からのオフセット; $-[0] はマッチ全体の先頭です + @+ グループの末尾からのオフセット; $+[0] はマッチ全体の末尾です + %+ 名前付き捕捉バッファ + %- 配列リファレンスとしての名前付き捕捉バッファ + =begin original Captured groups are numbered according to their I<opening> paren. =end original -Captured groups are numbered according to their I<opening> paren. -(TBT) +捕捉したグループは I<開き> かっこの順番で番号付けされます。 =head2 FUNCTIONS +(関数) + =begin original lc Lowercase a string @@ -590,9 +690,9 @@ =end original lc 文字列を小文字にします - lcfirst 文字列の最初のキャラクタを小文字にします + lcfirst 文字列の最初の文字を小文字にします uc 文字列を大文字にします - ucfirst 文字列の最初のキャラクタを Titlecase にします + ucfirst 文字列の最初の文字を Titlecase にします =begin original @@ -604,7 +704,7 @@ =end original pos カレントのマッチ位置を返したり設定したりします - quotemeta メタキャラクタをクォートします + quotemeta メタ文字をクォートします reset ?pattern? の状態をリセットします study マッチングの最適化のために文字列を調べます @@ -623,14 +723,18 @@ =end original -The first four of these are like the escape sequences C<\L>, C<\l>, -C<\U>, and C<\u>. For Titlecase, see L</Titlecase>. -(TBT) +これらの最初の 4 つは、エスケープシーケンス C<\L>, C<\l>, C<\U>, C<\u> と +似ています。 +タイトル文字については、L</Titlecase> を参照してください。 =head2 TERMINOLOGY +(用語) + =head3 Titlecase +(タイトル文字) + =begin original Unicode concept which most often is equal to uppercase, but for @@ -638,29 +742,14 @@ =end original -Unicode concept which most often is equal to uppercase, but for -certain characters like the German "sharp s" there is a difference. -(TBT) +Unicode の概念で、ほとんどの場合は大文字と同じですが、ドイツ語の +"sharp s" のような特定の文字については異なります。 =head1 AUTHOR -=begin original - -Iain Truskett. Updated by the Perl 5 Porters. - -=end original - Iain Truskett. Updated by the Perl 5 Porters. -(TBT) - -=begin original - -This document may be distributed under the same terms as Perl itself. - -=end original This document may be distributed under the same terms as Perl itself. -(TBT) =head1 SEE ALSO @@ -674,7 +763,7 @@ =end original -正規表現のチュートリアル L<perlretut>。 +正規表現のチュートリアルである L<perlretut>。 =item * @@ -684,7 +773,7 @@ =end original -手っ取り早いチュートリアル L<perlrequick>。 +手っ取り早いチュートリアルである L<perlrequick>。 =item * @@ -694,7 +783,7 @@ =end original -さらなる詳細の L<perlre>。 +さらなる詳細である L<perlre>。 =item * @@ -704,7 +793,7 @@ =end original -変数に関する詳細の L<perlvar>。 +変数に関する詳細である L<perlvar>。 =item * @@ -726,7 +815,6 @@ 関数の詳細である L<perlfunc>。 - =item * =begin original @@ -745,8 +833,7 @@ =end original -L<perlrebackslash> for a reference on backslash sequences. -(TBT) +バックスラッシュシーケンス の参考資料である L<perlrebackslash>。 =item * @@ -756,8 +843,7 @@ =end original -L<perlrecharclass> for a reference on character classes. -(TBT) +文字クラスの参考資料である L<perlrecharclass>。 =item * @@ -768,9 +854,7 @@ =end original -The L<re> module to alter behaviour and aid -debugging. -(TBT) +振る舞いの変更とデバッグの補助のための L<re> モジュール。 =item * @@ -798,10 +882,10 @@ =end original -I<Mastering Regular Expressions> by Jeffrey Friedl -(F<http://regex.info/>) for a thorough grounding and -reference on the topic. -(TBT) +この話題に関する完全な背景と参考資料である +Jeffrey Friedl による書籍 I<Mastering Regular Expressions> +(O'Reillyから出版。 ISBN 1556592-257-3)。 +日本語版は「詳説 正規表現」ISBN4-87311-130-7 (第二版のもの)。 =back @@ -824,3 +908,4 @@ =end meta =cut +