argra****@users*****
argra****@users*****
2014年 11月 27日 (木) 19:56:49 JST
Index: docs/perl/5.20.1/perlretut.pod diff -u docs/perl/5.20.1/perlretut.pod:1.2 docs/perl/5.20.1/perlretut.pod:1.3 --- docs/perl/5.20.1/perlretut.pod:1.2 Sat Oct 18 21:20:28 2014 +++ docs/perl/5.20.1/perlretut.pod Thu Nov 27 19:56:48 2014 @@ -129,7 +129,7 @@ =head1 Part 1: The basics -(基本) +(パート 1: 基本) =head2 Simple word matching @@ -1118,11 +1118,10 @@ =end original -In actuality, the period and C<\d\s\w\D\S\W> abbreviations are -themselves types of character classes, so the ones surrounded by -brackets are just one type of character class. When we need to make a -distinction, we refer to them as "bracketed character classes." -(TBT) +実情としては、ピリオドと C<\d\s\w\D\S\W> の省略形はそれ自身ある種の +文字クラスなので、これらを大かっこで囲んだものは単にある種の文字クラスです。 +これを区別する必要がある時には、これらは「大かっこ文字クラス」 +(bracketed character classes)と呼びます。 =begin original @@ -2279,11 +2278,9 @@ 使えます。 これらは C</p> 修飾子があるときにのみ設定されます。 従って、これらはプログラムの残りの部分では不利益にはなりません。 -In -Perl 5.20, C<${^PREMATCH}>, C<${^MATCH}> and C<${^POSTMATCH}> are available -whether the C</p> has been used or not (the modifier is ignored), and -C<$`>, C<$'> and C<$&> do not cause any speed difference. -(TBT) +Perl 5.20 では、C<${^PREMATCH}>, C<${^MATCH}>, C<${^POSTMATCH}> は C</p> は +あってもなくても使えるようになり(この修飾子は無視されます)、C<$`>, C<$'>, +C<$&> を使っても速度が変わらなくなりました。 =head2 Non-capturing groupings @@ -3616,7 +3613,7 @@ =end original -Perl 1 の最後のトピックは正規表現がPerlプログラムでどのように +パート 1 の最後のトピックは正規表現がPerlプログラムでどのように 使われているかを説明します。 正規表現は Perl の構文のどこにフィットしているのでしょう? @@ -3637,8 +3634,7 @@ マッチングさせる文字列を指定するために C<=~> 演算子や C<!~> 演算子を 使っています。 マッチング演算子について、単一行修飾子 C<//s>、複数行修飾子 C<//m>、 -大小文字の違いを無視する修飾子 C<//i>、拡張修飾子 C<//x> について -述べました。 +大小文字の違いを無視する修飾子 C<//i>、拡張修飾子 C<//x> について述べました。 マッチング演算子に関して、知っておきたいであろういくつかの事柄があります。 =head3 Prohibiting substitution @@ -3655,8 +3651,7 @@ もし最初の置換が行われた後で C<$pattern> を変更したとしても、Perl は それを無視します。 -すべての置換を行いたくないというのであれば、特殊なデリミタ -C<m''> を使います: +すべての置換を行いたくないというのであれば、特殊なデリミタ C<m''> を使います: =begin original @@ -3680,8 +3675,7 @@ =end original -文字列と同様、C<m''> は正規表現においてシングルクォートのように -振舞います。 +文字列と同様、C<m''> は正規表現においてシングルクォートのように振舞います。 他のすべての C<m> デリミタはダブルクォートのように振舞います。 もし正規表現が空文字列を評価したならば、その正規表現は I<最後に成功した> マッチングにある正規表現が代わりに使われます。 @@ -3875,8 +3869,7 @@ =end original -C<\G> はまた、正規表現を使って固定長のレコードを処理するときに -貴重なものです。 +C<\G> はまた、正規表現を使って固定長のレコードを処理するときに貴重なものです。 基礎となる組み合わせ文字でエンコードされた C<ATCGTTGAAT...> のような DNA の符号化部分があるとして、すべてのストップコドン (codon: 3 つの ヌクレオチドから成る,遺伝情報の単位)を見つけ出したいとしましょう。 @@ -4006,8 +3999,7 @@ 正規表現と修飾子をここで使うことができます。 C<replacement> は Perlでのダブルクォートで囲まれた文字列で、 C<regexp> にマッチングした文字列を置き換えるものです。 -C<=~> 演算子もまた C<s///> を伴った文字列に結びつけられるために -使われます。 +C<=~> 演算子もまた C<s///> を伴った文字列に結びつけられるために使われます。 C<$_> に対してマッチングを行う場合には、S<C<$_ =~>> は省略できます。 マッチングに成功した場合には C<s///> は置換が行われた数を返します; 失敗した場合には偽を返します。 @@ -4320,7 +4312,7 @@ =head1 Part 2: Power tools -(強力なツール) +(パート 2: 強力なツール) =begin original @@ -4335,9 +4327,9 @@ あなたはすでに正規表現の基本的なことを知っていて、より深く 知ろうとしています。 -正規表現のマッチングが森の中を歩くことに類似しているのなら、Part 1 で +正規表現のマッチングが森の中を歩くことに類似しているのなら、パート 1 で 述べられたツールは地図でありコンパスであり、いつも使う基本的な道具です。 -Part 2 での大部分のツールは照明弾であり、衛星電話です。 +パート 2 での大部分のツールは照明弾であり、衛星電話です。 ハイキングにはそうそう使うものではありませんが、困り果てたときには とても貴重なものです。 @@ -4682,12 +4674,13 @@ =end original -There are many, many Unicode character properties. For the full list -see L<perluniprops>. Most of them have synonyms with shorter names, -also listed there. Some synonyms are a single character. For these, -you can drop the braces. For instance, C<\pM> is the same thing as -C<\p{Mark}>, meaning things like accent marks. -(TBT) +Unicode 文字特性はとてもとてもたくさんあります。 +完全な一覧については L<perluniprops> を参照してください。 +これらのほとんどはより短い名前の同義語で、これらも一覧されています。 +一文字の同義語もあります。 +これらについては、中かっこを省略できます。 +例えば、C<\pM> は C<\p{Mark}> と同じことで、アクセント記号のようなものを +意味します。 =begin original @@ -4702,15 +4695,14 @@ =end original -The Unicode C<\p{Script}> property is used to categorize every Unicode -character into the language script it is written in. For example, -English, French, and a bunch of other European languages are written in -the Latin script. But there is also the Greek script, the Thai script, -the Katakana script, etc. You can test whether a character is in a -particular script with, for example C<\p{Latin}>, C<\p{Greek}>, -or C<\p{Katakana}>. To test if it isn't in the Balinese script, you -would use C<\P{Balinese}>. -(TBT) +Unicode の C<\p{用字名}> 特性は、全ての Unicode 文字を、それが書かれる +言語用字に分類します。 +例えば、英語、フランス語、および多くのその他のヨーロッパ言語は +ラテン用字で書かれます。 +しかし、ギリシャ用字、タイ用字、カタカナ用字などもあります。 +ある文字が特定の用字に含まれるかを、例えば C<\p{Latin}>, C<\p{Greek}>, +C<\p{Katakana}> のようにしてテスト出来ます。 +バリ用字に含まれないかどうかをテストするには、C<\P{Balinese}> として使います。 =begin original @@ -4844,8 +4836,8 @@ =end original -In Part 1 we mentioned that Perl compiles a regexp into a compact -sequence of opcodes. +パート 1 では、Perl は正規表現をコンパクトなオペコードの並びにコンパイルすると +述べました。 従って、コンパイルされた正規表現は一度だけ格納されて繰り返し使うことのできる データ構造です。 C<qr//> で表される正規表現クォートは次のようなものです: @@ -4920,9 +4912,8 @@ コンパイル済み正規表現は、現れるたびにコンパイルする必要のない動的な マッチングを生成するのに便利です。 -コンパイル済み正規表現を使って、ひとつのパターンを満足したらすぐに -次のパターンに進むような、パターンの並びを grep する -C<grep_step> を書けます。 +コンパイル済み正規表現を使って、ひとつのパターンを満足したらすぐに次の +パターンに進むような、パターンの並びを grep する C<grep_step> を書けます。 % cat > grep_step #!/usr/bin/perl @@ -5356,8 +5347,7 @@ 先読み表明 C<(?=regexp)> には任意の正規表現を使うことができますが、 戻り読み表明 C<< (?<=fixed-regexp) >> は固定長の正規表現、たとえば 固定長の文字並びでのみ使うことができます。 -このため、C<< (?<=(ab|bc)) >> は大丈夫ですが C<< (?<=(ab)*) >> は -使えません。 +このため、C<< (?<=(ab|bc)) >> は大丈夫ですが C<< (?<=(ab)*) >> は使えません。 先読み表明と戻り読み表明の否定形はそれぞれ C<(?!regexp)> と C<< (?<!fixed-regexp) >> で表されます。 これらはその正規表現がマッチングしなかったときに真となります。 @@ -5567,7 +5557,7 @@ マッチングする C<\([^()]*\)> です。 この正規表現の問題点は病理学的なものです: C<(a+|b)+> のように非決定的な 量指定子がネストしています。 -Part 1 において、ネストした量指定子はマッチングに失敗するときには実行に +パート 1 において、ネストした量指定子はマッチングに失敗するときには実行に 指数的な時間を要することについて言及しました。 これを防ぐために、不要なバックトラッキングを抑制することが必要となります。 これは内側の量指定子を独立部分式としてやることで行うことができます: @@ -6831,7 +6821,7 @@ Translate: KIMURA Koichi Update: SHIRAKATA Kentaro <argra****@ub32*****> (5.10.0-) -Status: in progress +Status: completed =end meta