, C, C の文字からなる
文字クラスです。
これら文字クラスはより大きな大かっこ文字クラスの一部にできます。
例えば:
[01[:alpha:]%]
=begin original
is valid and matches '0', '1', any alphabetic character, and the percent sign.
=end original
これは妥当で、'0'、'1'、任意の英字、パーセントマークにマッチングします。
=begin original
Perl recognizes the following POSIX character classes:
=end original
Perl は以下の POSIX 文字クラスを認識します:
=begin original
alpha Any alphabetical character (e.g., [A-Za-z]).
alnum Any alphanumeric character (e.g., [A-Za-z0-9]).
ascii Any character in the ASCII character set.
blank A GNU extension, equal to a space or a horizontal tab ("\t").
cntrl Any control character. See Note [2] below.
digit Any decimal digit (e.g., [0-9]), equivalent to "\d".
graph Any printable character, excluding a space. See Note [3] below.
lower Any lowercase character (e.g., [a-z]).
print Any printable character, including a space. See Note [4] below.
punct Any graphical character excluding "word" characters. Note [5].
space Any whitespace character. "\s" including the vertical tab
("\cK").
upper Any uppercase character (e.g., [A-Z]).
word A Perl extension (e.g., [A-Za-z0-9_]), equivalent to "\w".
xdigit Any hexadecimal digit (e.g., [0-9a-fA-F]). Note [7].
=end original
alpha 任意の英字 (例: [A-Za-z])。
alnum 任意の英数字。(例: [A-Za-z0-9])
ascii 任意の ASCII 文字集合の文字。
blank GNU 拡張; スペースまたは水平タブ (\t) と同じ。
cntrl 任意の制御文字。後述の [2] 参照。
digit 任意の 10 進数字 (例: [0-9]); "\d" と等価。
graph 任意の表示文字; スペースを除く。後述の [3] 参照。
lower 任意の小文字 (例: [a-z])。
print 任意の表示文字; スペースを含む。後述の [4] 参照。
punct 任意の「単語」文字を除く表示文字。[5] 参照。
space 任意の空白文字。水平タブ ("\cK") を含む "\s"。
upper 任意の大文字 (例: [A-Z])。
word Perl 拡張 (例: [A-Za-z0-9_]); "\w" と等価。
xdigit 任意の 16 進文字 (例: [0-9a-fA-F])。[7] 参照。
=begin original
Like the L, most of the POSIX
properties match the same regardless of whether case-insensitive (C)
matching is in effect or not. The two exceptions are C<[:upper:]> and
C<[:lower:]>. Under C, they each match the union of C<[:upper:]> and
C<[:lower:]>.
=end original
L と同様、
ほとんどの POSIX 特性は、大文字小文字無視 (C) が有効かどうかに関わらず
同じものにマッチングします。
二つの例外は C<[:upper:]> と C<[:lower:]> です。
C の下では、これらそれぞれ C<[:upper:]> と C<[:lower:]> の和集合に
マッチングします。
=begin original
Most POSIX character classes have two Unicode-style C<\p> property
counterparts. (They are not official Unicode properties, but Perl extensions
derived from official Unicode properties.) The table below shows the relation
between POSIX character classes and these counterparts.
=end original
ほとんどの POSIX 文字クラスには、対応する二つの Unicode 式の C<\p> 特性が
あります。
(これは公式 Unicode 特性ではなく、公式 Unicode 特性から派生した Perl
エクステンションです。)
以下の表は POSIX 文字クラスと対応するものとの関連を示します。
=begin original
One counterpart, in the column labelled "ASCII-range Unicode" in
the table, matches only characters in the ASCII character set.
=end original
対応物の一つである、表で "ASCII-range Unicode" と書かれた列のものは、
ASCII 文字集合の文字にのみマッチングします。
=begin original
The other counterpart, in the column labelled "Full-range Unicode", matches any
appropriate characters in the full Unicode character set. For example,
C<\p{Alpha}> matches not just the ASCII alphabetic characters, but any
character in the entire Unicode character set considered alphabetic.
An entry in the column labelled "backslash sequence" is a (short)
equivalent.
=end original
もう一つの対応物である、"Full-range Unicode" と書かれた列のものは、
Unicode 文字集合全体の中の適切な任意の文字にマッチングします。
例えば、C<\p{Alpha}> は単に ASCII アルファベット文字だけでなく、
Unicode 文字集合全体の中からアルファベットと考えられる任意の文字に
マッチングします。
"backslash sequence" の列は (短い) 同義語です。
[[:...:]] ASCII-range Full-range backslash Note
Unicode Unicode sequence
-----------------------------------------------------
alpha \p{PosixAlpha} \p{XPosixAlpha}
alnum \p{PosixAlnum} \p{XPosixAlnum}
ascii \p{ASCII}
blank \p{PosixBlank} \p{XPosixBlank} \h [1]
or \p{HorizSpace} [1]
cntrl \p{PosixCntrl} \p{XPosixCntrl} [2]
digit \p{PosixDigit} \p{XPosixDigit} \d
graph \p{PosixGraph} \p{XPosixGraph} [3]
lower \p{PosixLower} \p{XPosixLower}
print \p{PosixPrint} \p{XPosixPrint} [4]
punct \p{PosixPunct} \p{XPosixPunct} [5]
\p{PerlSpace} \p{XPerlSpace} \s [6]
space \p{PosixSpace} \p{XPosixSpace} [6]
upper \p{PosixUpper} \p{XPosixUpper}
word \p{PosixWord} \p{XPosixWord} \w
xdigit \p{PosixXDigit} \p{XPosixXDigit} [7]
=over 4
=item [1]
=begin original
C<\p{Blank}> and C<\p{HorizSpace}> are synonyms.
=end original
C<\p{Blank}> と C<\p{HorizSpace}> は同義語です。
=item [2]
=begin original
Control characters don't produce output as such, but instead usually control
the terminal somehow: for example, newline and backspace are control characters.
On ASCII platforms, in the ASCII range, characters whose code points are
between 0 and 31 inclusive, plus 127 (C) are control characters; on
EBCDIC platforms, their counterparts are control characters.
=end original
制御文字はそれ自体は出力されず、普通は何か端末を制御します: 例えば
改行と後退は制御文字です。
ASCII プラットフォームで、ASCII の範囲では、符号位置が 0 から 31 までの
範囲の文字および 127 (C) が制御文字です;
EBCDIC プラットフォームでは、対応するものは制御文字です。
=item [3]
=begin original
Any character that is I, that is, visible. This class consists
of all alphanumeric characters and all punctuation characters.
=end original
I、つまり見える文字。
このクラスは全ての英数字と全ての句読点文字。
=item [4]
=begin original
All printable characters, which is the set of all graphical characters
plus those whitespace characters which are not also controls.
=end original
全ての表示可能な文字; 全ての graphical 文字に加えて制御文字でない空白文字。
=item [5]
=begin original
C<\p{PosixPunct}> and C<[[:punct:]]> in the ASCII range match all
non-controls, non-alphanumeric, non-space characters:
C<[-!"#$%&'()*+,./:;<=E?@[\\\]^_`{|}~]> (although if a locale is in effect,
it could alter the behavior of C<[[:punct:]]>).
=end original
ASCII の範囲の C<\p{PosixPunct}> と C<[[:punct:]]> は全ての非制御、非英数字、
非空白文字にマッチングします:
C<[-!"#$%&'()*+,./:;<=E?@[\\\]^_`{|}~]> (しかしロケールが有効なら、
C<[[:punct:]]> の振る舞いが変わります)。
=begin original
The similarly named property, C<\p{Punct}>, matches a somewhat different
set in the ASCII range, namely
C<[-!"#%&'()*,./:;?@[\\\]_{}]>. That is, it is missing the nine
characters C<[$+E=E^`|~]>.
This is because Unicode splits what POSIX considers to be punctuation into two
categories, Punctuation and Symbols.
=end original
似たような名前の特性 C<\p{Punct}> は、ASCII 範囲の異なる集合である
C<[-!"#%&'()*,./:;?@[\\\]_{}]> にマッチングします。
つまり、C<[$+E=E^`|~]> の 9 文字はありません。
これは、Unicode は POSIX が句読点と考えるものを二つのカテゴリ
Punctuation と Symbols に分けているからです。
=begin original
C<\p{XPosixPunct}> and (under Unicode rules) C<[[:punct:]]>, match what
C<\p{PosixPunct}> matches in the ASCII range, plus what C<\p{Punct}>
matches. This is different than strictly matching according to
C<\p{Punct}>. Another way to say it is that
if Unicode rules are in effect, C<[[:punct:]]> matches all characters
that Unicode considers punctuation, plus all ASCII-range characters that
Unicode considers symbols.
=end original
C<\p{XPosixPunct}> と (Unicode の規則の下での) C<[[:punct:]]> は、
ASCII の範囲で C<\p{PosixPunct}> がマッチングする物に加えて、
C<\p{Punct}> がマッチングする物にマッチングします。
これは C<\p{Punct}> に従って正確にマッチングする物と異なります。
Unicode 規則が有効な場合のもう一つの言い方は、C<[[:punct:]]> は Unicode が
句読点として扱うものに加えて、Unicode が "symbols" として扱う ASCII 範囲の
全ての文字にマッチングします。
=item [6]
=begin original
C<\p{XPerlSpace}> and C<\p{Space}> match identically starting with Perl
v5.18. In earlier versions, these differ only in that in non-locale
matching, C<\p{XPerlSpace}> did not match the vertical tab, C<\cK>.
Same for the two ASCII-only range forms.
=end original
C<\p{XPerlSpace}> と C<\p{Space}> は、Perl v5.18 からは同じように
マッチングします。
以前のバージョンでは、これらの違いは、非ロケールマッチングでは
C<\p{XPerlSpace}> は垂直タブ C<\cK> にもマッチングしないということだけです。
二つの ASCII のみの範囲の形式では同じです。
=item [7]
=begin original
Unlike C<[[:digit:]]> which matches digits in many writing systems, such
as Thai and Devanagari, there are currently only two sets of hexadecimal
digits, and it is unlikely that more will be added. This is because you
not only need the ten digits, but also the six C<[A-F]> (and C<[a-f]>)
to correspond. That means only the Latin script is suitable for these,
and Unicode has only two sets of these, the familiar ASCII set, and the
fullwidth forms starting at U+FF10 (FULLWIDTH DIGIT ZERO).
=end original
タイ文字やデバナーガリ文字のように多くの書記体系の数字にマッチングする
C<[[:digit:]]> と異なり、16 進数の二つの集合だけで、これ以上追加されることは
おそらくありません。
これは、対応するのに 10 の数字だけでなく、6 個の C<[A-F]> (および C<[a-f]>) も
必要だからです。
これは、Latin 用字のみがこれらに適合していて、
Unicode はこれらの二つの集合、つまり慣れ親しんだ
ASCII 集合と、U+FF10 (FULLWIDTH DIGIT ZERO) から始まる全角形式のみを
持つということです。
=back
=begin original
There are various other synonyms that can be used besides the names
listed in the table. For example, C<\p{XPosixAlpha}> can be written as
C<\p{Alpha}>. All are listed in
L.
=end original
表に挙げられている名前以外にも様々なその他の同義語が使えます。
例えば、C<\p{XPosixAlpha}> は C<\p{Alpha}> と書けます。
全ての一覧は
L に
あります。
=begin original
Both the C<\p> counterparts always assume Unicode rules are in effect.
On ASCII platforms, this means they assume that the code points from 128
to 255 are Latin-1, and that means that using them under locale rules is
unwise unless the locale is guaranteed to be Latin-1 or UTF-8. In contrast, the
POSIX character classes are useful under locale rules. They are
affected by the actual rules in effect, as follows:
=end original
C<\p> に対応するものの両方は常に Unicode の規則が有効であることを仮定します。
これは、ASCII プラットフォームでは、128 から 255 の符号位置は
Latin-1 であることを仮定するということで、ロケールの規則の下で
これらを使うということは、ロケールが Latin-1 か UTF-8 であることが
補償されていない限り賢明ではないということです。
一方、POSIX 文字クラスはロケールの規則の下で有用です。
これらは次のように、実際に有効な規則に影響を受けます:
=over
=item If the C