argra****@users*****
argra****@users*****
2013年 2月 27日 (水) 03:51:30 JST
Index: docs/perl/5.10.1/perlrecharclass.pod diff -u docs/perl/5.10.1/perlrecharclass.pod:1.1 docs/perl/5.10.1/perlrecharclass.pod:1.2 --- docs/perl/5.10.1/perlrecharclass.pod:1.1 Sat Jan 26 20:19:05 2013 +++ docs/perl/5.10.1/perlrecharclass.pod Wed Feb 27 03:51:30 2013 @@ -1,4 +1,6 @@ +=encoding euc-jp + =head1 NAME =begin original @@ -8,7 +10,6 @@ =end original perlrecharclass - Perl 正規表現文字クラス -(TBT) =head1 DESCRIPTION @@ -87,6 +88,8 @@ 以下は例です: +=begin original + "a" =~ /./ # Match "." =~ /./ # Match "" =~ /./ # No match (dot has to match a character) @@ -95,6 +98,16 @@ "\n" =~ /(?s:.)/ # Match (local 'single line' modifier) "ab" =~ /^.$/ # No match (dot matches one character) +=end original + + "a" =~ /./ # マッチングする + "." =~ /./ # マッチングする + "" =~ /./ # マッチングしない (ドットは文字にマッチングする必要がある) + "\n" =~ /./ # マッチングしない (ドットは改行にはマッチングしない) + "\n" =~ /./s # マッチングする (グローバル「単一行」修飾子) + "\n" =~ /(?s:.)/ # マッチングする (ローカル「単一行」修飾子) + "ab" =~ /^.$/ # マッチングしない (ドットは一文字にマッチングする) + =head2 Backslashed sequences (逆スラッシュシーケンス) @@ -110,13 +123,13 @@ =end original -Perl regular expressions contain many backslashed sequences that -constitute a character class. That is, they will match a single -character, if that character belongs to a specific set of characters -(defined by the sequence). A backslashed sequence is a sequence of -characters starting with a backslash. Not all backslashed sequences -are character class; for a full list, see L<perlrebackslash>. -(TBT) +Perl 正規表現には、文字クラスを構成する多くの逆スラッシュシーケンスを +持ちます。 +これは(シーケンスで定義される)ある特定の文字集合に属する一つの文字に +マッチングします。 +逆スラッシュシーケンスは、逆スラッシュで始まる並びです。 +全ての逆スラッシュシーケンスが文字クラスというわけではありません; 完全な +リストは、L<perlrebackslash> を参照してください。 =begin original @@ -125,9 +138,9 @@ =end original -Here's a list of the backslashed sequences, which are discussed in -more detail below. -(TBT) +以下は逆スラッシュシーケンスの一覧です; 以下でさらに詳細に議論します。 + +=begin original \d Match a digit character. \D Match a non-digit character. @@ -142,6 +155,21 @@ \pP, \p{Prop} Match a character matching a Unicode property. \PP, \P{Prop} Match a character that doesn't match a Unicode property. +=end original + + \d 数字にマッチング。 + \D 非数字にマッチング。 + \w 「単語」文字にマッチング。 + \W 非「単語」文字にマッチング。 + \s 空白文字にマッチング。 + \S 非空白文字にマッチング。 + \h 水平空白文字にマッチング。 + \H 水平空白でない文字にマッチング。 + \v 垂直空白文字にマッチング。 + \V 垂直空白でない文字にマッチング。 + \pP, \p{Prop} Unicode 特性にマッチする文字にマッチング。 + \PP, \P{Prop} Unicode 特性にマッチしない文字にマッチング。 + =head3 Digits (数字) @@ -159,15 +187,14 @@ =end original -C<\d> matches a single character that is considered to be a I<digit>. -What is considered a digit depends on the internal encoding of -the source string. If the source string is in UTF-8 format, C<\d> -not only matches the digits '0' - '9', but also Arabic, Devanagari and -digits from other languages. Otherwise, if there is a locale in effect, -it will match whatever characters the locale considers digits. Without -a locale, C<\d> matches the digits '0' to '9'. -See L</Locale, Unicode and UTF-8>. -(TBT) +C<\d> は I<数字> と考えられる単一の文字にマッチングします。 +何が数字と考えられるかはソース文字列の内部エンコーディングに依存します。 +ソース文字列が UTF-8 形式なら、C<\d> は数字 '0' - '9' だけでなく、Arabic, +Devanagari およびその他の言語の数字もマッチングします。 +さもなければ、ロケールが有効なら、ロケールが数字と考える文字に +マッチングします。 +ロケールがなければ、C<\d> は '0' から '9' の数字にマッチングします。 +L</Locale, Unicode and UTF-8> を参照してください。 =begin original @@ -175,8 +202,7 @@ =end original -Any character that isn't matched by C<\d> will be matched by C<\D>. -(TBT) +C<\d> にマッチングしない任意の文字は C<\D> にマッチングします。 =head3 Word characters @@ -197,17 +223,17 @@ =end original -C<\w> matches a single I<word> character: an alphanumeric character -(that is, an alphabetic character, or a digit), or the underscore (C<_>). -What is considered a word character depends on the internal encoding -of the string. If it's in UTF-8 format, C<\w> matches those characters -that are considered word characters in the Unicode database. That is, it -not only matches ASCII letters, but also Thai letters, Greek letters, etc. -If the source string isn't in UTF-8 format, C<\w> matches those characters -that are considered word characters by the current locale. Without -a locale in effect, C<\w> matches the ASCII letters, digits and the -underscore. -(TBT) +C<\w> は単一の I<単語> 文字にマッチングします: これは英数字(つまり英字または +数字)および下線 (C<_>) です。 +何が単語文字と考えられるかは文字列の内部エンコーディングに依存します。 +UTF-8 形式の場合、C<\w> は Unicode データベースで単語文字と考えられるものに +マッチングします。 +これは、ASCII の文字だけではなく、タイの文字、ギリシャの文字、などにも +マッチングするということです。 +ソース文字列が UTF-8 形式でない場合、C<\w> は現在のロケールで単語文字と +考えられるものにマッチングします。 +ロケールが有効でない場合、C<\w> は ASCII 文字、数字、下線に +マッチングします。 =begin original @@ -215,8 +241,7 @@ =end original -Any character that isn't matched by C<\w> will be matched by C<\W>. -(TBT) +C<\w> にマッチングしない任意の文字は C<\W> にマッチングします。 =head3 White space @@ -239,19 +264,20 @@ =end original -C<\s> matches any single character that is consider white space. In the -ASCII range, C<\s> matches the horizontal tab (C<\t>), the new line -(C<\n>), the form feed (C<\f>), the carriage return (C<\r>), and the -space (the vertical tab, C<\cK> is not matched by C<\s>). The exact set -of characters matched by C<\s> depends on whether the source string is -in UTF-8 format. If it is, C<\s> matches what is considered white space -in the Unicode database. Otherwise, if there is a locale in effect, C<\s> -matches whatever is considered white space by the current locale. Without -a locale, C<\s> matches the five characters mentioned in the beginning -of this paragraph. Perhaps the most notable difference is that C<\s> -matches a non-breaking space only if the non-breaking space is in a -UTF-8 encoded string. -(TBT) +C<\s> は空白と考えられる単一の文字にマッチングします。 +ASCII の範囲では、C<\s> は水平タブ(C<\t>)、改行(C<\n>)、ページ送り(C<\f>)、 +復帰(C<\r>)、スペースにマッチングします (垂直タブ C<\cK> は C<\s> に +マッチングしません)。 +C<\s> がマッチングする文字の正確な集合はソース文字列が UTF-8 形式かどうかに +依存します。 +もしそうなら、C<\s> は Unicode データベースで空白と考えられるものに +マッチングします。 +さもなければ、ロケールが有効なら、C<\s> は現在のロケールで空白と +考えられるものにマッチングします。 +ロケールなしでは、C<\s> はこの段落の始めに言及した五つの文字に +マッチングします。 +おそらくもっとも顕著な違いは、non-breaking space は UTF-8 エンコードされた +文字列にある場合にのみ、C<\s> にマッチングするということです。 =begin original @@ -259,8 +285,7 @@ =end original -Any character that isn't matched by C<\s> will be matched by C<\S>. -(TBT) +C<\s> にマッチングしない任意の文字は C<\S> にマッチングします。 =begin original @@ -270,10 +295,9 @@ =end original -C<\h> will match any character that is considered horizontal white space; -this includes the space and the tab characters. C<\H> will match any character -that is not considered horizontal white space. -(TBT) +C<\h> は水平空白と考えられる任意の文字にマッチングします; これはスペースと +タブ文字です。 +C<\H> は水平空白と考えられない文字にマッチングします。 =begin original @@ -283,10 +307,9 @@ =end original -C<\v> will match any character that is considered vertical white space; -this includes the carriage return and line feed characters (newline). -C<\V> will match any character that is not considered vertical white space. -(TBT) +C<\v> は垂直空白と考えられる任意の文字にマッチングします; これは復帰と +行送り(改行)文字です。 +C<\V> は垂直空白と考えられない任意の文字にマッチングします。 =begin original @@ -297,11 +320,11 @@ =end original -C<\R> matches anything that can be considered a newline under Unicode -rules. It's not a character class, as it can match a multi-character -sequence. Therefore, it cannot be used inside a bracketed character -class. Details are discussed in L<perlrebackslash>. -(TBT) +C<\R> は Unicode の規則で改行と考えられるものにマッチングします。 +複数文字の並びにマッチングすることもあるので、これは +文字クラスではありません。 +従って、大かっこ文字クラスの中では使えません。 +詳細は L<perlrebackslash> で議論しています。 =begin original @@ -309,8 +332,7 @@ =end original -C<\h>, C<\H>, C<\v>, C<\V>, and C<\R> are new in perl 5.10.0. -(TBT) +C<\h>, C<\H>, C<\v>, C<\V>, C<\R> は perl 5.10.0 の新機能です。 =begin original @@ -321,11 +343,9 @@ =end original -Note that unlike C<\s>, C<\d> and C<\w>, C<\h> and C<\v> always match -the same characters, regardless whether the source string is in UTF-8 -format or not. The set of characters they match is also not influenced -by locale. -(TBT) +C<\s>, C<\d>, C<\w> と違って、C<\h> および C<\v> はソース文字列が +UTF-8 形式かどうかに関わらず同じ文字にマッチングします。 +マッチングする文字の集合はロケールの影響も受けません。 =begin original @@ -339,14 +359,15 @@ =end original -One might think that C<\s> is equivalent with C<[\h\v]>. This is not true. -The vertical tab (C<"\x0b">) is not matched by C<\s>, it is however -considered vertical white space. Furthermore, if the source string is -not in UTF-8 format, the next line (C<"\x85">) and the no-break space -(C<"\xA0">) are not matched by C<\s>, but are by C<\v> and C<\h> respectively. -If the source string is in UTF-8 format, both the next line and the -no-break space are matched by C<\s>. -(TBT) +C<\s> が C<[\h\v]> と等価と考える人がいるかもしれません。 +これは正しくありません。 +垂直タブ (C<"\x0b">) は C<\s> にマッチングしませんが、垂直空白と +考えられます。 +さらに、ソース文字列が UTF-8 形式でなければ、next line (C<"\x85">) と +no-break space (C<"\xA0">) は C<\s> にマッチングしませんが、 +それぞれ C<\v> および C<\h> にはマッチングします。 +ソース文字列が UTF-8 形式なら、next line と no-break space は C<\s> に +マッチングします。 =begin original @@ -355,9 +376,7 @@ =end original -The following table is a complete listing of characters matched by -C<\s>, C<\h> and C<\v>. -(TBT) +以下の表は C<\s>, C<\h>, C<\v> にマッチングする文字の完全な一覧です。 =begin original @@ -367,10 +386,8 @@ =end original -The first column gives the code point of the character (in hex format), -the second column gives the (Unicode) name. The third column indicates -by which class(es) the character is matched. -(TBT) +最初の列は文字の符号位置(16 進形式)、2 番目の列は (Unicode の)名前です。 +3 番目の列はどのクラスにマッチングするかを示しています。 0x00009 CHARACTER TABULATION h s 0x0000a LINE FEED (LF) vs @@ -410,9 +427,8 @@ =end original -NEXT LINE and NO-BREAK SPACE only match C<\s> if the source string is in -UTF-8 format. -(TBT) +NEXT LINE と NO-BREAK SPACE はソース文字列が UTF-8 形式の時にのみ +C<\s> にマッチングします。 =back @@ -424,13 +440,15 @@ =end original -It is worth noting that C<\d>, C<\w>, etc, match single characters, not -complete numbers or words. To match a number (that consists of integers), -use C<\d+>; to match a word, use C<\w+>. -(TBT) +C<\d>, C<\w> などは単語や数値全体ではなく単一の文字にマッチングすると +いうことは注意する価値があります。 +(整数で構成される)数値にマッチングするには、C<\d+> を使ってください; 単語に +マッチングするには、C<\w+> を使ってください。 =head3 Unicode Properties +(Unicode 特性) + =begin original C<\pP> and C<\p{Prop}> are character classes to match characters that @@ -446,17 +464,18 @@ =end original -C<\pP> and C<\p{Prop}> are character classes to match characters that -fit given Unicode classes. One letter classes can be used in the C<\pP> -form, with the class name following the C<\p>, otherwise, the property -name is enclosed in braces, and follows the C<\p>. For instance, a -match for a number can be written as C</\pN/> or as C</\p{Number}/>. -Lowercase letters are matched by the property I<LowercaseLetter> which -has as short form I<Ll>. They have to be written as C</\p{Ll}/> or -C</\p{LowercaseLetter}/>. C</\pLl/> is valid, but means something different. -It matches a two character string: a letter (Unicode property C<\pL>), -followed by a lowercase C<l>. -(TBT) +C<\pP> と C<\p{Prop}> は指定された Unicode クラスに一致する文字に +マッチングする文字クラスです。 +一文字クラスは C<\pP> 形式で、C<\p> に引き続いてクラス名です; さもなければ +特性名は中かっこで囲まれて、C<\p> に引き続きます。 +例えば、数字にマッチングするものは C</\pN/> または C</\p{Number}/> と +書けます。 +小文字は I<LowercaseLetter> 特性にマッチングします; これには +I<Ll> と言う短縮形式があります。 +C</\p{Ll}/> または C</\p{LowercaseLetter}/> と書く必要があります。 +C</\pLl/> も妥当ですが、違う意味になります。 +これは 2 文字にマッチングします: 英字 (Unicode 特性 C<\pL>)に引き続いて +小文字の C<l> です。 =begin original @@ -467,14 +486,17 @@ =end original -For a list of possible properties, see -L<perlunicode/Unicode Character Properties>. It is also possible to -defined your own properties. This is discussed in -L<perlunicode/User-Defined Character Properties>. -(TBT) +特性のリストについては、L<perlunicode/Unicode Character Properties> を +参照してください。 +独自の特性を定義することも可能です。 +これは L<perlunicode/User-Defined Character Properties> で議論されています。 =head4 Examples +(例) + +=begin original + "a" =~ /\w/ # Match, "a" is a 'word' character. "7" =~ /\w/ # Match, "7" is a 'word' character as well. "a" =~ /\d/ # No match, "a" isn't a digit. @@ -484,18 +506,53 @@ "7" =~ /\D/ # No match, "7" is not a non-digit. " " =~ /\S/ # No match, a space is not non-white space. +=end original + + "a" =~ /\w/ # マッチング; "a" は「単語」文字。 + "7" =~ /\w/ # マッチング; "7" も「単語」文字。 + "a" =~ /\d/ # マッチングしない; "a" は数字ではない。 + "7" =~ /\d/ # マッチング; "7" は数字。 + " " =~ /\s/ # マッチング; スペースは空白。 + "a" =~ /\D/ # マッチング; "a" は非数字。 + "7" =~ /\D/ # マッチングしない; "7" は非数字ではない。 + " " =~ /\S/ # マッチングしない; スペースは非空白ではない。 + +=begin original + " " =~ /\h/ # Match, space is horizontal white space. " " =~ /\v/ # No match, space is not vertical white space. "\r" =~ /\v/ # Match, a return is vertical white space. +=end original + + " " =~ /\h/ # マッチング; スペースは水平空白。 + " " =~ /\v/ # マッチングしない; スペースは垂直空白ではない。 + "\r" =~ /\v/ # マッチング; 復帰は垂直空白。 + +=begin original + "a" =~ /\pL/ # Match, "a" is a letter. "a" =~ /\p{Lu}/ # No match, /\p{Lu}/ matches upper case letters. +=end original + + "a" =~ /\pL/ # マッチング; "a" は英字。 + "a" =~ /\p{Lu}/ # マッチングしない; /\p{Lu}/ は大文字にマッチングする。 + +=begin original + "\x{0e0b}" =~ /\p{Thai}/ # Match, \x{0e0b} is the character # 'THAI CHARACTER SO SO', and that's in # Thai Unicode class. "a" =~ /\P{Lao}/ # Match, as "a" is not a Laoian character. +=end original + + "\x{0e0b}" =~ /\p{Thai}/ # マッチング; \x{0e0b} は文字 + # 'THAI CHARACTER SO SO' で、これは + # Thai Unicode クラスにある。 + "a" =~ /\P{Lao}/ # マッチング; "a" はラオス文字ではない。 + =head2 Bracketed Character Classes (かっこ付き文字クラス) @@ -513,15 +570,15 @@ =end original -The third form of character class you can use in Perl regular expressions -is the bracketed form. In its simplest form, it lists the characters -that may be matched inside square brackets, like this: C<[aeiou]>. -This matches one of C<a>, C<e>, C<i>, C<o> or C<u>. Just as the other -character classes, exactly one character will be matched. To match -a longer string consisting of characters mentioned in the characters -class, follow the character class with a quantifier. For instance, -C<[aeiou]+> matches a string of one or more lowercase ASCII vowels. -(TBT) +Perl 正規表現で使える文字クラスの第 3 の形式は大かっこ形式です。 +もっとも単純な形式では、以下のように大かっこの中にマッチングする文字を +リストします: C<[aeiou]>. +これは C<a>, C<e>, C<i>, C<o>, C<u> のどれかにマッチングします。 +他の文字クラスと同様、正確に一つの文字にマッチングします。 +文字クラスで言及した文字で構成されるより長い文字列にマッチングするには、 +文字クラスに量指定子を付けます。 +例えば、C<[aeiou]+> は一つまたはそれ以上の小文字 ASCII 母音に +マッチングします。 =begin original @@ -530,9 +587,8 @@ =end original -Repeating a character in a character class has no -effect; it's considered to be in the set only once. -(TBT) +文字クラスの中で文字を繰り返しても効果はありません; 一度だけ現れたものと +考えられます。 =begin original @@ -540,8 +596,9 @@ =end original -Examples: -(TBT) +例: + +=begin original "e" =~ /[aeiou]/ # Match, as "e" is listed in the class. "p" =~ /[aeiou]/ # No match, "p" is not listed in the class. @@ -549,6 +606,14 @@ # a single character. "ae" =~ /^[aeiou]+$/ # Match, due to the quantifier. +=end original + + "e" =~ /[aeiou]/ # マッチング; "e" はクラスにある。 + "p" =~ /[aeiou]/ # マッチングしない; "p" はクラスにない。 + "ae" =~ /^[aeiou]$/ # マッチングしない; 一つの文字クラスは + # 一文字だけにマッチングする。 + "ae" =~ /^[aeiou]+$/ # マッチング; 量指定子により。 + =head3 Special Characters Inside a Bracketed Character Class (かっこ付き文字クラスの中の特殊文字) @@ -564,13 +629,11 @@ =end original -Most characters that are meta characters in regular expressions (that -is, characters that carry a special meaning like C<*> or C<(>) lose -their special meaning and can be used inside a character class without -the need to escape them. For instance, C<[()]> matches either an opening -parenthesis, or a closing parenthesis, and the parens inside the character -class don't group or capture. -(TBT) +正規表現内でメタ文字(つまり、C<*> や C<(> のように特別な意味を持つ文字)となる +ほとんどの文字は文字クラス内ではエスケープしなくても特別な意味を失うので、 +エスケープする必要はありません。 +例えば、C<[()]> は開きかっこまたは閉じかっこにマッチングし、文字クラスの中の +かっこはグループや捕捉にはなりません。 =begin original @@ -581,11 +644,10 @@ =end original -Characters that may carry a special meaning inside a character class are: -C<\>, C<^>, C<->, C<[> and C<]>, and are discussed below. They can be -escaped with a backslash, although this is sometimes not needed, in which -case the backslash may be omitted. -(TBT) +文字クラスの中でも特別な意味を持つ文字は: +C<\>, C<^>, C<->, C<[>, C<]> で、以下で議論します。 +これらは逆スラッシュでエスケープできますが、不要な場合もあり、そのような +場合では逆スラッシュは省略できます。 =begin original @@ -597,12 +659,10 @@ =end original -The sequence C<\b> is special inside a bracketed character class. While -outside the character class C<\b> is an assertion indicating a point -that does not have either two word characters or two non-word characters -on either side, inside a bracketed character class, C<\b> matches a -backspace character. -(TBT) +シーケンス C<\b> は大かっこ文字クラスの内側では特別です。 +文字クラスの外側では C<\b> 二つの単語文字か二つの非単語文字のどちらかではない +位置を示す表明ですが、大かっこ文字クラスの内側では C<\b> は後退文字に +マッチングします。 =begin original @@ -611,9 +671,9 @@ =end original -A C<[> is not special inside a character class, unless it's the start -of a POSIX character class (see below). It normally does not need escaping. -(TBT) +C<[> は、POSIX 文字クラス(後述)の開始でない限りは文字クラスの中では +特別ではありません。 +これは普通エスケープは不要です。 =begin original @@ -628,15 +688,13 @@ =end original -A C<]> is either the end of a POSIX character class (see below), or it -signals the end of the bracketed character class. Normally it needs -escaping if you want to include a C<]> in the set of characters. -However, if the C<]> is the I<first> (or the second if the first -character is a caret) character of a bracketed character class, it -does not denote the end of the class (as you cannot have an empty class) -and is considered part of the set of characters that can be matched without -escaping. -(TBT) +A C<]> は POSIX 文字クラス(後述)の終わりか、大かっこ文字クラスの終了を +示すかどちらかです。 +通常、文字集合に C<]> を含める場合はエスケープする必要があります。 +しかし、C<]> が大かっこ文字クラスの I<最初> (または最初の文字がキャレットなら +2 番目) の文字の場合、(空クラスを作ることはできないので)これはクラスの +終了を意味せず、エスケープなしでマッチングできる文字の集合の一部と +考えられます。 =begin original @@ -644,8 +702,9 @@ =end original -Examples: -(TBT) +例: + +=begin original "+" =~ /[+?*]/ # Match, "+" in a character class is not special. "\cH" =~ /[\b]/ # Match, \b inside in a character class @@ -656,6 +715,17 @@ # containing just ], and the character class is # followed by a ]. +=end original + + "+" =~ /[+?*]/ # マッチング; 文字クラス内の "+" は特別ではない。 + "\cH" =~ /[\b]/ # マッチング; 文字クラスの内側の \b は後退と + # 等価。 + "]" =~ /[][]/ # マッチング; 文字クラスに [ と ] の両方を + # 含んでいる。 + "[]" =~ /[[]]/ # マッチング; パターンは ] だけを含んでいる + # 文字クラスと、それに引き続く + # ] からなる。 + =head3 Character Ranges (文字範囲) @@ -725,8 +795,9 @@ =end original -Examples: -(TBT) +例: + +=begin original [a-z] # Matches a character that is a lower case ASCII letter. [a-fz] # Matches any letter between 'a' and 'f' (inclusive) or the @@ -737,6 +808,17 @@ ['-?] # Matches any of the characters '()*+,-./0123456789:;<=>? # (But not on an EBCDIC platform). +=end original + + [a-z] # 小文字 ASCII 英字にマッチング。 + [a-fz] # 'a' から 'f' の英字およびと 'z' の英字に + # マッチング。 + [-z] # ハイフン ('-') または英字 'z' にマッチング。 + [a-f-m] # 'a' から 'f' の英字、ハイフン ('-')、英字 'm' に + # マッチング。 + ['-?] # 文字 '()*+,-./0123456789:;<=>? のどれかにマッチング + # (しかし EBCDIC プラットフォームでは異なります)。 + =head3 Negation (否定) @@ -777,14 +859,22 @@ =end original -Examples: -(TBT) +例: + +=begin original "e" =~ /[^aeiou]/ # No match, the 'e' is listed. "x" =~ /[^aeiou]/ # Match, as 'x' isn't a lowercase vowel. "^" =~ /[^^]/ # No match, matches anything that isn't a caret. "^" =~ /[x^]/ # Match, caret is not special here. +=end original + + "e" =~ /[^aeiou]/ # マッチングしない; 'e' がある。 + "x" =~ /[^aeiou]/ # マッチング; 'x' は小文字の母音ではない。 + "^" =~ /[^^]/ # マッチングしない; キャレット以外全てにマッチング。 + "^" =~ /[x^]/ # マッチング; キャレットはここでは特別ではない。 + =head3 Backslash Sequences (逆スラッシュシーケンス) @@ -799,12 +889,11 @@ =end original -You can put a backslash sequence character class inside a bracketed character -class, and it will act just as if you put all the characters matched by -the backslash sequence inside the character class. For instance, -C<[a-f\d]> will match any digit, or any of the lowercase letters between -'a' and 'f' inclusive. -(TBT) +大かっこ文字クラスの中に逆スラッシュシーケンス文字クラスを置くことができ、 +逆スラッシュシーケンスにマッチングする全ての文字を文字クラスの中に +置いたかのように動作します。 +例えば、C<[a-f\d]> は任意の数字、あるいは 'a' から 'f' までの小文字に +マッチングします。 =begin original @@ -812,14 +901,22 @@ =end original -Examples: -(TBT) +例: + +=begin original /[\p{Thai}\d]/ # Matches a character that is either a Thai # character, or a digit. /[^\p{Arabic}()]/ # Matches a character that is neither an Arabic # character, nor a parenthesis. +=end original + + /[\p{Thai}\d]/ # タイ文字または数字の文字に + # マッチングする。 + /[^\p{Arabic}()]/ # アラビア文字でもかっこでもない文字に + # マッチングする。 + =begin original Backslash sequence character classes cannot form one of the endpoints @@ -827,9 +924,7 @@ =end original -Backslash sequence character classes cannot form one of the endpoints -of a range. -(TBT) +逆スラッシュシーケンス文字クラスは範囲の端点の一つにはできません。 =head3 Posix Character Classes @@ -844,11 +939,11 @@ =end original -Posix character classes have the form C<[:class:]>, where I<class> is -name, and the C<[:> and C<:]> delimiters. Posix character classes appear -I<inside> bracketed character classes, and are a convenient and descriptive -way of listing a group of characters. Be careful about the syntax, -(TBT) +Posix 文字クラスは C<[:class:]> の形式で、I<class> は名前、C<[:> と C<:]> は +デリミタです。 +Posix 文字クラスは大かっこ文字クラスの I<内側> に現れ、文字のグループを +一覧するのに便利で記述的な方法です。 +文法について注意してください、 # Correct: $string =~ /[[:alpha:]]/ @@ -863,9 +958,8 @@ =end original -The latter pattern would be a character class consisting of a colon, -and the letters C<a>, C<l>, C<p> and C<h>. -(TBT) +後者のパターンは、コロンおよび C<a>, C<l>, C<p>, C<h> の文字からなる +文字クラスです。 =begin original @@ -873,8 +967,9 @@ =end original -Perl recognizes the following POSIX character classes: -(TBT) +Perl 以下の POSIX 文字クラスを認識します: + +=begin original alpha Any alphabetical character. alnum Any alphanumerical character. @@ -891,6 +986,23 @@ word Any "word" character, equivalent to "\w". xdigit Any hexadecimal digit, '0' - '9', 'a' - 'f', 'A' - 'F'. +=end original + + alpha 任意の英字。 + alnum 任意の英数字。 + ascii 任意の ASCII 文字。 + blank GNU 拡張; スペースまたは水平タブ ("\t") と同じ。 + cntrl 任意の制御文字。 + digit 任意の数字; "\d" と等価。 + graph 任意の表示文字; スペースを除く。 + lower 任意の小文字。 + print 任意の表示文字; スペースを含む。 + punct 任意の句読点文字。 + space 任意の空白文字。"\s" に加えて水平タブ ("\cK")。 + upper 任意の大文字。 + word 任意の「単語」文字; "\w" と等価。 + xdigit 任意の 16 進文字; '0' - '9', 'a' - 'f', 'A' - 'F'。 + =begin original The exact set of characters matched depends on whether the source string @@ -898,9 +1010,9 @@ =end original -The exact set of characters matched depends on whether the source string -is internally in UTF-8 format or not. See L</Locale, Unicode and UTF-8>. -(TBT) +マッチングする文字の正確な集合はソース文字列が内部で UTF-8 形式かどうかに +依存します。 +L</Locale, Unicode and UTF-8> を参照してください。 =begin original @@ -910,10 +1022,9 @@ =end original -Most POSIX character classes have C<\p> counterparts. The difference -is that the C<\p> classes will always match according to the Unicode -properties, regardless whether the string is in UTF-8 format or not. -(TBT) +ほとんどの POSIX 文字クラスは対応する C<\p> を持っています。 +違いは、文字列が UTF-8 形式かどうかに関わらず C<\p> クラスは常に +Unicode 特性に従ってマッチングするということです。 =begin original @@ -922,9 +1033,7 @@ =end original -The following table shows the relation between POSIX character classes -and the Unicode properties: -(TBT) +以下の表は POSIX 文字クラスと Unicode 特性との関係を示しています: [[:...:]] \p{...} backslash @@ -950,8 +1059,7 @@ =end original -Some character classes may have a non-obvious name: -(TBT) +一部の文字クラスは明らかでない名前を持ちます: =over 4 @@ -968,13 +1076,11 @@ =end original -Any control character. Usually, control characters don't produce output -as such, but instead control the terminal somehow: for example newline -and backspace are control characters. All characters with C<ord()> less -than 32 are usually classified as control characters (in ASCII, the ISO -Latin character sets, and Unicode), as is the character C<ord()> value -of 127 (C<DEL>). -(TBT) +任意の制御文字。 +普通は、制御文字はそれ自体は出力されず、何か端末を制御します: 例えば +改行と後退は制御文字です。 +(ASCII、ISO Latin 文字集合、Unicode) で C<ord()> が 32 未満の全ての文字および +C<ord()> 値が 127 の文字 (C<DEL>) は普通は制御文字に分類されます。 =item graph @@ -985,9 +1091,8 @@ =end original -Any character that is I<graphical>, that is, visible. This class consists -of all the alphanumerical characters and all punctuation characters. -(TBT) +I<graphical>、つまり見える文字。 +このクラスは全ての英数字と全ての句読点文字。 =item print @@ -998,9 +1103,7 @@ =end original -All printable characters, which is the set of all the graphical characters -plus the space. -(TBT) +全ての表示可能な文字; 全ての graphical 文字と空白。 =item punct @@ -1010,13 +1113,14 @@ =end original -Any punctuation (special) character. -(TBT) +任意の句読点(特殊)文字。 =back =head4 Negation +(否定) + =begin original A Perl extension to the POSIX character class is the ability to @@ -1025,10 +1129,9 @@ =end original -A Perl extension to the POSIX character class is the ability to -negate it. This is done by prefixing the class name with a caret (C<^>). -Some examples: -(TBT) +POSIX 文字クラスに対する Perl の拡張は否定の機能です。 +これはクラス名の前にキャレット (C<^>) を置くことで実現します。 +いくつかの例です: POSIX Unicode Backslash [[:^digit:]] \P{IsDigit} \D @@ -1037,6 +1140,8 @@ =head4 [= =] and [. .] +([= =] と [. .]) + =begin original Perl will recognize the POSIX character classes C<[=class=]>, and @@ -1045,13 +1150,16 @@ =end original -Perl will recognize the POSIX character classes C<[=class=]>, and -C<[.class.]>, but does not (yet?) support this construct. Use of -such a construct will lead to an error. -(TBT) +Perl は POSIX 文字クラス C<[=class=]> と C<[.class.]> を認識しますが、 +これらの構文には(まだ?)対応していません。 +このような構文の使用はエラーを引き起こします。 =head4 Examples +(例) + +=begin original + /[[:digit:]]/ # Matches a character that is a digit. /[01[:lower:]]/ # Matches a character that is either a # lowercase letter, or '0' or '1'. @@ -1063,6 +1171,19 @@ # all characters, but the letters 'a' to 'f' # and 'A' to 'F'. +=end original + + /[[:digit:]]/ # 数字の文字にマッチングする。 + /[01[:lower:]]/ # 小文字、'0'、'1' のいずれかの文字に + # マッチングする。 + /[[:digit:][:^xdigit:]]/ # どんな文字にもマッチングしますが、大文字小文字の + # 'a' から 'f' を除きます。 + # これは全ての数字と 16 進文字でない全ての文字を + # 含む文字クラスなので、このクラスには + # 'a' から 'f' および 'A' から 'F' を + # 除く全ての文字に + # マッチングすることになります。 + =head2 Locale, Unicode and UTF-8 (ロケール、Unicode、UTF-8) @@ -1075,10 +1196,8 @@ =end original -Some of the character classes have a somewhat different behaviour depending -on the internal encoding of the source string, and the locale that is -in effect. -(TBT) +ソース文字列の内部エンコーディングと有効なロケールに依存して少し異なった +振る舞いをする文字クラスもあります。 =begin original @@ -1087,9 +1206,8 @@ =end original -C<\w>, C<\d>, C<\s> and the POSIX character classes (and their negations, -including C<\W>, C<\D>, C<\S>) suffer from this behaviour. -(TBT) +C<\w>, C<\d>, C<\s> および POSIX 文字クラス (および C<\W>, C<\D>, C<\S> を +含むこれらの否定) はこの振る舞いの影響を受けます。 =begin original @@ -1134,12 +1252,15 @@ =end original -For portability reasons, it may be better to not use C<\w>, C<\d>, C<\s> -or the POSIX character classes, and use the Unicode properties instead. -(TBT) +移植性の理由により、C<\w>, C<\d>, C<\s> や POSIX 文字クラスは使わず、 +Unicode 特性を使う方が良いです。 =head4 Examples +(例) + +=begin original + $str = "\xDF"; # $str is not in UTF-8 format. $str =~ /^\w/; # No match, as $str isn't in UTF-8 format. $str .= "\x{0e0b}"; # Now $str is in UTF-8 format. @@ -1147,6 +1268,15 @@ chop $str; $str =~ /^\w/; # Still a match! $str remains in UTF-8 format. +=end original + + $str = "\xDF"; # $str は UTF-8 形式ではない。 + $str =~ /^\w/; # マッチングしない; $str は UTF-8 形式ではない。 + $str .= "\x{0e0b}"; # ここで $str は UTF-8 形式。 + $str =~ /^\w/; # マッチング! $str は UTF-8 形式。 + chop $str; + $str =~ /^\w/; # まだマッチング! $str は UTF-8 形式のまま。 + =begin meta Translate: SHIRAKATA Kentaro <argra****@ub32*****> (5.10.1)