argra****@users*****
argra****@users*****
2016年 3月 16日 (水) 18:37:15 JST
Index: docs/perl/5.14.1/perlre.pod diff -u docs/perl/5.14.1/perlre.pod:1.6 docs/perl/5.14.1/perlre.pod:1.7 --- docs/perl/5.14.1/perlre.pod:1.6 Wed Apr 3 01:17:04 2013 +++ docs/perl/5.14.1/perlre.pod Wed Mar 16 18:37:15 2016 @@ -152,21 +152,36 @@ =end original -There are a number of Unicode characters that match multiple characters -under C</i>. For example, C<LATIN SMALL LIGATURE FI> -should match the sequence C<fi>. Perl is not -currently able to do this when the multiple characters are in the pattern and -are split between groupings, or when one or more are quantified. Thus -(TBT) +C</i> の基で複数の文字にマッチングする Unicode 文字はたくさんあります。 +例えば、C<LATIN SMALL LIGATURE FI> は並び C<fi> にマッチングするべきです。 +複数の文字がパターン中にあってグループ化で分割されている場合、または +どれかの文字に量指定子が付いている場合、Perl は今のところこれを行えません。 +従って + +=begin original "\N{LATIN SMALL LIGATURE FI}" =~ /fi/i; # Matches "\N{LATIN SMALL LIGATURE FI}" =~ /[fi][fi]/i; # Doesn't match! "\N{LATIN SMALL LIGATURE FI}" =~ /fi*/i; # Doesn't match! +=end original + + "\N{LATIN SMALL LIGATURE FI}" =~ /fi/i; # マッチング + "\N{LATIN SMALL LIGATURE FI}" =~ /[fi][fi]/i; # マッチングしない! + "\N{LATIN SMALL LIGATURE FI}" =~ /fi*/i; # マッチングしない! + +=begin original + # The below doesn't match, and it isn't clear what $1 and $2 would # be even if it did!! "\N{LATIN SMALL LIGATURE FI}" =~ /(f)(i)/i; # Doesn't match! +=end original + + # 次のものはマッチングしないし、もししたとしても $1 と $2 が何になるか + # はっきりしない!! + "\N{LATIN SMALL LIGATURE FI}" =~ /(f)(i)/i; # マッチングしない! + =begin original Perl doesn't match multiple characters in an inverted bracketed @@ -175,10 +190,9 @@ =end original -Perl doesn't match multiple characters in an inverted bracketed -character class, which otherwise could be highly confusing. See -L<perlrecharclass/Negation>. -(TBT) +Perl は、否定大かっこ文字クラスの複数の文字にはマッチングしません; +さもなければとても混乱することがあるからです。 +L<perlrecharclass/Negation> を参照して下さい。 =begin original @@ -218,8 +232,8 @@ =end original -${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} といったマッチングされた -文字列をマッチングの後も使えるように維持します。 +${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} といったマッチングされた文字列を +マッチングの後も使えるように維持します。 =item g and c X</g> X</c> @@ -236,8 +250,7 @@ =end original -グローバル(Global)なマッチング、及びマッチング失敗後の -現在位置の保持。 +グローバル(Global)なマッチング、及びマッチング失敗後の現在位置の保持。 i, m, s, x とは違い、この二つのフラグは 正規表現そのものではなく正規表現の使われ方に作用します。 g 及び c 修飾子の詳細な説明は @@ -246,6 +259,8 @@ =item a, d, l and u X</a> X</d> X</l> X</u> +(a, d, l, u) + =begin original These modifiers, new in 5.14, affect which character-set semantics @@ -254,10 +269,9 @@ =end original -These modifiers, new in 5.14, affect which character-set semantics -(Unicode, ASCII, etc.) are used, as described below in -L</Character set modifiers>. -(TBT) +5.14 から導入されたこれらの新しい修飾子は、どの文字集合意味論 (Unicode, +ASCII など) が使われるかに影響を与えます; L</Character set modifiers> で +後述します。 =back @@ -270,8 +284,8 @@ =end original -これらは通常「C</x> 修飾子」のように記述され、これは区切りがスラッシュで -なくてもそう記述されます。 +これらは通常「C</x> 修飾子」のように記述され、これは区切りが実際には +スラッシュでなくてもそう記述されます。 また、C</imsxadlup> 修飾子は C<(?...)> 構築子を使って正規表現内に 埋め込まれることもあります; 後述する L</Extended Patterns> を 参照してください。 @@ -348,6 +362,8 @@ =head3 Character set modifiers +(文字集合修飾子) + =begin original C</d>, C</u>, C</a>, and C</l>, available starting in 5.14, are called @@ -1549,11 +1565,12 @@ =end original -The bracketing construct C<( ... )> creates capture groups (also referred to as -capture buffers). To refer to the current contents of a group later on, within -the same pattern, use C<\g1> (or C<\g{1}>) for the first, C<\g2> (or C<\g{2}>) -for the second, and so on. -This is called a I<backreference>. +かっこ構文 C<( ... )> は捕捉グループを作成します (そして捕捉バッファとして +参照します)。 +同じパターンの中で、あるグループの現在の内容を後で参照するには、 +最初のものには C<\g1> (または C<\g{1}>) を、2 番目には C<\g2> (または +C<\g{2}>) を、以下同様のものを使います。 +これを I<後方参照> (backreference) と呼びます。 X<regex, capture buffer> X<regexp, capture buffer> X<regex, capture group> X<regexp, capture group> X<regular expression, capture buffer> X<backreference> @@ -1562,14 +1579,12 @@ X<named capture buffer> X<regular expression, named capture buffer> X<named capture group> X<regular expression, named capture group> X<%+> X<$+{name}> X<< \k<name> >> -There is no limit to the number of captured substrings that you may use. -Groups are numbered with the leftmost open parenthesis being number 1, etc. If -a group did not match, the associated backreference won't match either. (This -can happen if the group is optional, or in a different branch of an -alternation.) -You can omit the C<"g">, and write C<"\1">, etc, but there are some issues with -this form, described below. -(TBT) +使う捕捉部分文字列の数に制限はありません。 +グループはいちばん左の開きかっこを 1 番として番号付けされます。 +グループがマッチングしなかった場合、対応する後方参照もマッチングしません。 +(これはグループがオプションか、選択の異なる枝の場合に怒ることがあります。) +C<"g"> を省略して C<"\1"> などと書くこともできますが、後で述べるように、 +この形式にはいくらかの問題があります。 =begin original @@ -1580,11 +1595,10 @@ =end original -You can also refer to capture groups relatively, by using a negative number, so -that C<\g-1> and C<\g{-1}> both refer to the immediately preceding capture -group, and C<\g-2> and C<\g{-2}> both refer to the group before it. For -example: -(TBT) +負数を使うことで捕捉グループを相対的に参照することもできます; C<\g-1> と +C<\g{-1}> は両方とも直前の捕捉グループを参照し、C<\g-2> と C<\g{-2}> は +両方ともその前のグループを参照します。 +例えば: / (Y) # group 1 @@ -1604,10 +1618,8 @@ =end original は C</(Y) ( (X) \g3 \g1 )/x> と同じマッチングとなります。 -This allows you to -interpolate regexes into larger regexes and not have to worry about the -capture groups being renumbered. -(TBT) +これにより、正規表現をより大きな正規表現に挿入したときに、捕捉グループの +番号を振り直す心配をする必要がなくなります。 =begin original @@ -1719,9 +1731,8 @@ =end original -The C<\I<digit>> notation also works in certain circumstances outside -the pattern. See L</Warning on \1 Instead of $1> below for details. -(TBT) +C<\I<digit>> 記法は、ある種の状況ではパターンの外側でも動作します。 +詳しくは後述する L</Warning on \1 Instead of $1> を参照して下さい。 =begin original @@ -1987,7 +1998,7 @@ 疑問符は 1) それが古い正規表現で使われることは稀であること、そして 2) それを見かけると何が行われるのか本当に「疑問に」思って止まることから、 これのためと最小マッチング構成子のために選ばれました。 -これが心理学です… +これが心理学です…。 =over 10 @@ -3282,9 +3293,8 @@ =end original -Checks whether the pattern matches (or does not match, for the '!' -variants). -(TBT) +パターンがマッチングするか (あるいは '!' 版はマッチングしないか) を +チェックします。 =item (?{ CODE }) @@ -3504,10 +3514,11 @@ =end original -C<< (?>pattern) >> does not disable backtracking altogether once it has -matched. It is still possible to backtrack past the construct, but not -into it. So C<< ((?>a*)|(?>b*))ar >> will still match "bar". -(TBT) +C<< (?>pattern) >> は、一旦マッチングしたら、全くバックトラックを +無効にしません。 +未だこの構文の前までバックトラックする可能性はありますが、構文の中に +バックトラックすることはありません。 +従って C<< ((?>a*)|(?>b*))ar >> は "bar" にマッチングするままです。 =begin original @@ -4765,10 +4776,8 @@ =end original -A series of characters matches that series of characters in the target -string, so the pattern C<blurfl> would match "blurfl" in the target -string. -(TBT) +文字の並びは、ターゲット文字列の文字の並びにマッチングします; 従って +パターン C<blurfl> は、ターゲット文字列の "blurfl" にマッチングします。 =begin original @@ -5158,7 +5167,8 @@ =end original -Notice that "hello" is only printed once, as when Perl sees that the sixth +"hello" は一度だけ表示されることに注目して下さい; +as when Perl sees that the sixth iteration of the outermost C<(?:)*> matches a zero-length string, it stops the C<*>. (TBT) @@ -5500,10 +5510,9 @@ =end original -As of Perl 5.10.0, one can create custom regular expression engines. This -is not for the faint of heart, as they have to plug in at the C level. See -L<perlreapi> for more details. -(TBT) +Perl 5.10.0 から、誰でもカスタム正規表現エンジンを作成できます。 +これは気弱な人向けではありません; C レベルでプラグインする必要があるからです。 +さらなる詳細については L<perlreapi> を参照して下さい。 =begin original