blog20100901

2013/08/20 - プログラミング言語 Perl にまつわる etc. - Perl monger
参考 : perldoc, perldoc.jp, search.cpan.org, perldoc.perl.org ...
「 初めての Perl 第 6 版 」(オライリー・ジャパン発行 ISBN978-4-87311-567-2) 」
「 続・初めての Perl 改訂版 」(オライリー・ジャパン発行 ISBN4-87311-305-9) 」
「 Effective Perl 第 2 版 」(翔泳社発行 ISBN978-4-7981-3981-4) 」 ... etc,.

Perl Perl_0 正規表現

Perl 「 正規表現 」: 演算子とメタキャラクタ (0x58)

Perl 「 正規表現 」: 演算子とメタキャラクタ (0x58)

目次 - Perl Index



Theme



Perl について、復習を兼ねて断片的な情報を掲載して行く連載その 0x57 回。

Perl の「 正規表現 」( Regular expression ) の演算子とメタキャラクタについて。




正規表現の演算子



Perl の正規表現は、「 m// 」、「 s/// 」、「 qr// 」、「 split 」の一部だと言います。

つまり、Perl で正規表現を利用する場合は、これらの演算子とセットで利用することになります。

また、マッチングの対象とパターンを繋ぐ演算子として「 Perl で正規表現を少しだけ説明 (0x18) 」で登場した「 =~ 」を利用します。

これは等号「 = 」( Equal sign ) と、チルダ (チルド) 「 ~ 」( tilde ) を組み合わせたものですが、マッチングの対象が暗黙のスカラ変数 $_ だった場合は不要です。

メタキャラクタ



正規表現で扱う文字 ( Character ) の中で、特別な意味を付加されたいくつかの文字があります。

特別な意味を持つ代表的な文字は次の様なものです。


\ (backslash) # 直右のメタ文字をエスケープ
^ (caret) # 行の先頭にマッチング
. (period) # (改行以外の) 任意の 1 文字にマッチング
$ (dollar sign) # 行末にマッチング (または改行の前)
| (pipe) # 代替 ((a|b) a または b)
() (parenthesis) # グループ化
[] (bracket) # 文字クラス


これらの特別な文字は「 メタキャラクタ (メタ文字) 」( Metacaracter ) と総称します。

「 メタ 」( Meta ) とは、ギリシャ語由来の接頭語で、「 - の間の 」「 - の後ろの 」「 - を含む 」や「 変化 」「 変成 」、「 超越 」「 高次な - 」等の意味を持ちます。

Wikipedia には、狭義のメタとして

「 ある対象を記述したものがあり、さらにそれを対象として記述するものを、メタな○○、あるいは単にメタ○○と呼ぶ。」

とあり、広義には

「 何かを取り込んだ何か、何かについての何か、といったものがメタと呼ばれる場合がある。」

とあります。

狭義の例としては、「 言語を記述する言語 - メタ言語 」や「 文法を記述するための文法 - メタ文法 」が上がっており、 広義の例としては、「 小説内で語られる小説 」や「 映画の中で描かれる映画 」が上がっています。

このことから僕は、

「 特定の対象に対する表現を、その対象に対する表現であると表現するための特定の表現 」

だと理解しています。

つまり、上に挙げた「 メタキャラクタ 」( の一部 ) は、「 特定の文字を表現するための文字として表現された特定の文字 」だということです。

0x58 -> 0x59 へ



メタについて分かりやすく (?) まとめてあるページがありました。

哲学するIT ITする哲学 - メタとは何か? 自己言及の世界の危険と不思議そして語ることの重要性

Perl とは関係ありませんが、コンピュータサイエンスから自己言及のパラドクス、語ることの重要性へと続く興味深い話です。

参考情報は書籍「 初めての Perl 第 6 版 」を中心に perldoc, Wikipedia および各 Web サイト。それと詳しい先輩。

目次 - Perl Index





















同じカテゴリー(Perl)の記事
 Perl mp2 翻訳 Web コンテンツ圧縮の FAQ (d228) (2023-10-11 23:49)
 Perl mp2 翻訳 既知のブラウザのバグの回避策をいくつか (d227) (2023-05-26 15:41)
 Perl mp2 翻訳 Perl と Apache でのキュートなトリック (d226) (2023-05-19 17:05)
 Perl mp2 翻訳 テンプレートシステムの選択 (d225) (2022-08-15 22:23)
 Perl mp2 翻訳 大規模 E コマースサイトの構築 (d224) (2022-06-15 20:43)
 Perl mp2 翻訳 チュートリアル (d223) (2022-06-15 20:42)

Llama
リャマ
TI-DA
てぃーだブログ
プロフィール
セラ (perlackline)
セラ (perlackline)
QRコード
QRCODE
オーナーへメッセージ

PAGE TOP ▲