argra****@users*****
argra****@users*****
2008年 12月 22日 (月) 04:08:37 JST
Index: docs/perl/5.10.0/perlreref.pod diff -u /dev/null docs/perl/5.10.0/perlreref.pod:1.1 --- /dev/null Mon Dec 22 04:08:37 2008 +++ docs/perl/5.10.0/perlreref.pod Mon Dec 22 04:08:37 2008 @@ -0,0 +1,826 @@ + +=encoding euc-jp + +=head1 NAME + +=begin original + +perlreref - Perl Regular Expressions Reference + +=end original + +perlreref - Perl の正規表現のリファレンス + +=head1 DESCRIPTION + +=begin original + +This is a quick reference to Perl's regular expressions. +For full information see L<perlre> and L<perlop>, as well +as the L</"SEE ALSO"> section in this document. + +=end original + +本ドキュメントは、Perl の正規表現のクイックリファレンスです。完全な情報は、 +L<perlre> と L<perlop>、また、本ドキュメントの +L</"SEE ALSO"> セクションを参照してください。 + +=head2 OPERATORS + +(演算子) + +=begin original + +C<=~> determines to which variable the regex is applied. +In its absence, $_ is used. + +=end original + +C<=~> は正規表現が適用される変数を決定します。省略された +場合には、$_ が使われます。 + + $var =~ /foo/; + +=begin original + +C<!~> determines to which variable the regex is applied, +and negates the result of the match; it returns +false if the match succeeds, and true if it fails. + +=end original + +C<!~> は正規表現が適用される変数を決定し、マッチの結果を反転します。 +マッチが成功すれば偽を返し、失敗すれば真を返します。 + + $var !~ /foo/; + +=begin original + +C<m/pattern/msixpogc> searches a string for a pattern match, +applying the given options. + +=end original + +C<m/pattern/msixpogc> パターンマッチのために文字列を検索し、 +与えられたオプションを適用します。 + +=begin original + + m Multiline mode - ^ and $ match internal lines + s match as a Single line - . matches \n + i case-Insensitive + x eXtended legibility - free whitespace and comments + p Preserve a copy of the matched string - + ${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} will be defined. + o compile pattern Once + g Global - all occurrences + c don't reset pos on failed matches when using /g + +=end original + + m 複数行モード - ^ と $ が内部的な行にマッチします + s 単行としてマッチ - . が \n にマッチします + i 大小文字の違いを無視します + x 読みやすさの拡張 - 空白やコメントを自由に置けます + p マッチした文字列のコピーを保存する - + ${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} が定義されます。 + o パターンを一度だけコンパイルします + g グローバル - マッチするものすべて + c /g を使っているときにマッチに失敗しても pos をリセットしません + +=begin 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 '/'. + +=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) + +=begin 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. + +=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) + +=begin original + +C<s/pattern/replacement/msixpogce> substitutes matches of +'pattern' with 'replacement'. Modifiers as for C<m//>, +with one addition: + +=end original + +C<s/pattern/replacement/msixpogce> substitutes matches of +'pattern' with 'replacement'. Modifiers as for C<m//>, +with one addition: +(TBT) + + e Evaluate 'replacement' as an expression + +=begin original + +'e' may be specified multiple times. 'replacement' is interpreted +as a double quoted string unless a single-quote (C<'>) is the delimiter. + +=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) + +=begin original + +C<?pattern?> is like C<m/pattern/> but matches only once. No alternate +delimiters can be used. Must be reset with reset(). + +=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) + +=head2 SYNTAX + +=begin original + + \ Escapes the character immediately following it + . Matches any single character except a newline (unless /s is used) + ^ Matches at the beginning of the string (or line, if /m is used) + $ Matches at the end of the string (or line, if /m is used) + * Matches the preceding element 0 or more times + + Matches the preceding element 1 or more times + ? Matches the preceding element 0 or 1 times + {...} Specifies a range of occurrences for the element preceding it + [...] Matches any one of the characters contained within the brackets + (...) Groups subexpressions for capturing to $1, $2... + (?:...) Groups subexpressions without capturing (cluster) + | Matches either the subexpression preceding or following it + \1, \2, \3 ... Matches the text from the Nth group + \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) + +=end original + + \ 直後のキャラクタをエスケープします + . 改行を除く任意の一キャラクタにマッチします (/s が使われていない場合) + ^ 文字列(/m が使われている場合は行)の先頭にマッチします + $ 文字列(/m が使われている場合は行)の末尾にマッチします + * 先行する要素のゼロ回以上の繰り返しにマッチします + + 先行する要素の一回以上の繰り返しにマッチします + ? 先行する要素のゼロ回または一回の出現にマッチします + {...} 先行する要素の繰り返しの範囲を指定します + [...] ブラケットの内側にあるキャラクタのいずれかにマッチします + (...) $1, $2... のために部分正規表現をグループ化してキャプチャします + (?:...) 部分正規表現をキャプチャすることなくグループ化します (cluster) + | 左右いずれかにある部分正規表現にマッチします + \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) + +=head2 ESCAPE SEQUENCES + +=begin original + +These work as in normal strings. + +=end original + +これらは通常の文字列として働きます。 + +=begin original + + \a Alarm (beep) + \e Escape + \f Formfeed + \n Newline + \r Carriage return + \t Tab + \037 Any octal ASCII value + \x7f Any hexadecimal ASCII value + \x{263a} A wide hexadecimal value + \cx Control-x + \N{name} A named character + +=end original + + \a アラーム (ビープ) + \e エスケープ + \f 改ページ + \n 改行 + \r キャリッジリターン + \t タブ + \037 任意の octal ASCII value + \x7f 任意の hexadecimal ASCII value + \x{263a} 幅広の十六進値 + \cx Control-x + \N{name} 名前つきキャラクタ + +=begin original + + \l Lowercase next character + \u Titlecase next character + \L Lowercase until \E + \U Uppercase until \E + \Q Disable pattern metacharacters until \E + \E End modification + +=end original + + \l 次のキャラクタを小文字にします + \u 次のキャラクタをTitlecase にします + \L \E まで小文字にします + \U \E まで大文字にします + \Q \E までパターンのメタキャラクタを無効にします + \E modification を終了します + +=begin original + +For Titlecase, see L</Titlecase>. + +=end original + +Titlecase については L</Titlecase> を参照してください。 + +=begin original + +This one works differently from normal strings: + +=end original + +This one works differently from normal strings: +(TBT) + + \b An assertion, not backspace, except in a character class + +=head2 CHARACTER CLASSES + +(文字クラス) + + [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" + +=begin 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. + +=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) + + \d A digit + \D A nondigit + \w A word character + \W A non-word character + \s A whitespace character + \S A non-whitespace character + \h An horizontal white space + \H A non horizontal white space + \v A vertical white space + \V A non vertical white space + \R A generic newline (?>\v|\x0D\x0A) + + \C Match a byte (with Unicode, '.' matches a character) + \pP Match P-named (Unicode) property + \p{...} Match Unicode property with long name + \PP Match non-P + \P{...} Match lack of Unicode property with long name + \X Match extended Unicode combining character sequence + +=begin original + +POSIX character classes and their Unicode and Perl equivalents: + +=end original + +POSIX character classes and their Unicode and Perl equivalents: +(TBT) + + alnum IsAlnum Alphanumeric + alpha IsAlpha Alphabetic + ascii IsASCII Any ASCII char + blank IsSpace [ \t] Horizontal whitespace (GNU extension) + cntrl IsCntrl Control characters + digit IsDigit \d Digits + graph IsGraph Alphanumeric and punctuation + lower IsLower Lowercase chars (locale and Unicode aware) + print IsPrint Alphanumeric, punct, and space + punct IsPunct Punctuation + space IsSpace [\s\ck] Whitespace + IsSpacePerl \s Perl's whitespace definition + upper IsUpper Uppercase chars (locale and Unicode aware) + word IsWord \w Alphanumeric plus _ (Perl extension) + xdigit IsXDigit [0-9A-Fa-f] Hexadecimal digit + +=begin original + +Within a character class: + +=end original + +Within a character class: +(TBT) + + POSIX traditional Unicode + [:digit:] \d \p{IsDigit} + [:^digit:] \D \P{IsDigit} + +=head2 ANCHORS + +=begin original + +All are zero-width assertions. + +=end original + +すべてゼロ幅の表明です。 + +=begin original + + ^ Match string start (or line, if /m is used) + $ Match string end (or line, if /m is used) or before newline + \b Match word boundary (between \w and \W) + \B Match except at word boundary (between \w and \w or \W and \W) + \A Match string start (regardless of /m) + \Z Match string end (before optional newline) + \z Match absolute string end + \G Match where previous m//g left off + +=end original + + ^ 文字列(/m が指定されている場合には行)の先頭にマッチします + $ 文字列(/m が指定されている場合には行)の終端もしくは改行の前にマッチします + \b 単語境界(\w と ¥W の間)にマッチします + \B 単語境界以外(\w と \w の間か \W と \W の間)にマッチします + \A 文字列の先頭(/m には影響されません)にマッチします + \Z 文字列の末尾(省略可能な改行の前)にマッチします + \z 文字列の本当の末尾にマッチします + \G 前回の m//g のマッチした場所の末尾にマッチします Match where previous m//g left off + + \K Keep the stuff left of the \K, don't include it in $& + +=head2 QUANTIFIERS + +(量指定子) + +=begin original + +Quantifiers are greedy by default -- match the B<longest> leftmost. + +=end original + +Quantifiers are greedy by default -- match the B<longest> leftmost. +(TBT) + + Maximal Minimal Possessive Allowed range + ------- ------- ---------- ------------- + {n,m} {n,m}? {n,m}+ Must occur at least n times + but no more than m times + {n,} {n,}? {n,}+ Must occur at least n times + {n} {n}? {n}+ Must occur exactly n times + * *? *+ 0 or more times (same as {0,}) + + +? ++ 1 or more times (same as {1,}) + ? ?? ?+ 0 or 1 time (same as {0,1}) + +=begin 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. + +=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) + +=begin original + +There is no quantifier {,n} -- that gets understood as a literal string. + +=end original + +There is no quantifier {,n} -- that gets understood as a literal string. +(TBT) + +=head2 EXTENDED CONSTRUCTS + +(拡張構造) + +=begin original + + (?#text) A comment + (?:...) Groups subexpressions without capturing (cluster) + (?pimsx-imsx:...) Enable/disable option (as per m// modifiers) + (?=...) Zero-width positive lookahead assertion + (?!...) Zero-width negative lookahead assertion + (?<=...) Zero-width positive lookbehind assertion + (?<!...) Zero-width negative lookbehind assertion + (?>...) Grab what we can, prohibit backtracking + (?|...) Branch reset + (?<name>...) Named capture + (?'name'...) Named capture + (?P<name>...) Named capture (python syntax) + (?{ code }) Embedded code, return value becomes $^R + (??{ code }) Dynamic regex, return value used as regex + (?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) + (?(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 + +=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) + (?(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) + +=head2 VARIABLES + +(変数) + +=begin original + + $_ Default variable for operators to use + +=end original + + $_ 演算子が使用するデフォルトの変数 + +=begin original + + $` Everything prior to matched string + $& Entire matched string + $' Everything after to matched string + +=end original + + $` マッチした文字列に先行する部分 + $& マッチした文字列全体 + $' マッチした文字列に後続する部分 + +=begin original + + ${^PREMATCH} Everything prior to matched string + ${^MATCH} Entire matched string + ${^POSTMATCH} Everything after to matched string + +=end original + + ${^PREMATCH} Everything prior to matched string + ${^MATCH} Entire matched string + ${^POSTMATCH} Everything after to matched string +(TBT) + +=begin 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. + +=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) + + $1, $2 ... hold the Xth captured expr + $+ Last parenthesized pattern match + $^N Holds the most recently closed capture + $^R Holds the result of the last (?{...}) expr + @- Offsets of starts of groups. $-[0] holds start of whole match + @+ Offsets of ends of groups. $+[0] holds end of whole match + %+ Named capture buffers + %- Named capture buffers, as array refs + +=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) + +=head2 FUNCTIONS + +=begin original + + lc Lowercase a string + lcfirst Lowercase first char of a string + uc Uppercase a string + ucfirst Titlecase first char of a string + +=end original + + lc 文字列を小文字にします + lcfirst 文字列の最初のキャラクタを小文字にします + uc 文字列を大文字にします + ucfirst 文字列の最初のキャラクタを Titlecase にします + +=begin original + + pos Return or set current match position + quotemeta Quote metacharacters + reset Reset ?pattern? status + study Analyze string for optimizing matching + +=end original + + pos カレントのマッチ位置を返したり設定したりします + quotemeta メタキャラクタをクォートします + reset ?pattern? の状態をリセットします + study マッチングの最適化のために文字列を調べます + +=begin original + + split Use a regex to split a string into parts + +=end original + + split 文字列を分割するために正規表現を使います + +=begin 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>. + +=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) + +=head2 TERMINOLOGY + +=head3 Titlecase + +=begin original + +Unicode concept which most often is equal to uppercase, but for +certain characters like the German "sharp s" there is a difference. + +=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) + +=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 + +=over 4 + +=item * + +=begin original + +L<perlretut> for a tutorial on regular expressions. + +=end original + +正規表現のチュートリアル L<perlretut>。 + +=item * + +=begin original + +L<perlrequick> for a rapid tutorial. + +=end original + +手っ取り早いチュートリアル L<perlrequick>。 + +=item * + +=begin original + +L<perlre> for more details. + +=end original + +さらなる詳細の L<perlre>。 + +=item * + +=begin original + +L<perlvar> for details on the variables. + +=end original + +変数に関する詳細の L<perlvar>。 + +=item * + +=begin original + +L<perlop> for details on the operators. + +=end original + +演算子の詳細である L<perlop>。 + +=item * + +=begin original + +L<perlfunc> for details on the functions. + +=end original + +関数の詳細である L<perlfunc>。 + + +=item * + +=begin original + +L<perlfaq6> for FAQs on regular expressions. + +=end original + +正規表現に関する FAQ である L<perlfaq6>。 + +=item * + +=begin original + +L<perlrebackslash> for a reference on backslash sequences. + +=end original + +L<perlrebackslash> for a reference on backslash sequences. +(TBT) + +=item * + +=begin original + +L<perlrecharclass> for a reference on character classes. + +=end original + +L<perlrecharclass> for a reference on character classes. +(TBT) + +=item * + +=begin original + +The L<re> module to alter behaviour and aid +debugging. + +=end original + +The L<re> module to alter behaviour and aid +debugging. +(TBT) + +=item * + +L<perldebug/"Debugging regular expressions"> + +=item * + +=begin original + +L<perluniintro>, L<perlunicode>, L<charnames> and L<perllocale> +for details on regexes and internationalisation. + +=end original + +正規表現や国際化に関する詳細である L<perluniintro>, L<perlunicode>, +L<charnames>, L<perllocale>。 + +=item * + +=begin original + +I<Mastering Regular Expressions> by Jeffrey Friedl +(F<http://regex.info/>) for a thorough grounding and +reference on the topic. + +=end original + +I<Mastering Regular Expressions> by Jeffrey Friedl +(F<http://regex.info/>) for a thorough grounding and +reference on the topic. +(TBT) + +=back + +=head1 THANKS + +David P.C. Wollmann, +Richard Soderberg, +Sean M. Burke, +Tom Christiansen, +Jim Cromie, +and +Jeffrey Goff +for useful advice. + +=begin meta + +Created: KIMURA Koichi +Updated: Kentaro Shirakata <argra****@ub32*****> (5.10.0-) + +=end meta + +=cut