解説
正規表現は文字列のパターンを表現する方法です。検索や置換で用いられて、複雑な条件で文字列に一致させることが可能です。正規表現では、メタ文字、メタキャラクターと呼ばれる記号を使い、文字を抽象化して出現パターンを記します。
この正規表現は、多くのプログラミング言語や、テキストエディタで利用できます。使用するプログラミング言語などの環境によって、微妙に仕様が違うので、使用前に確認が必要です。本記事では、JavaScriptの正規表現を中心に扱います(他のプログラミング言語の正規表現も、大きな差はありません)。
今回は、その正規表現の中から、「文字セットの否定」を紹介します。文字セットは、角カッコで複数の文字を囲い、その中のいずれかの一文字を指定する、正規表現の記法です。
| 記述 | 意味 |
|---|---|
| [abc] | 「a」か「b」か「c」 |
文字セットの否定は、角カッコと「^」で複数の文字を囲い、その中のいずれでもない一文字を指定する、正規表現の記法です。
| 記述 | 意味 |
|---|---|
| [^abc] | 「a」か「b」か「c」ではない |
句読点や記号以外といった、「何か以外」の文字を指定する際に便利な方法です。
サンプル
正規表現で「文字セットの否定」を利用したコードを、JavaScriptで簡単に書いてみます。
<html>
<head>
<title>「文字セットの否定」のサンプル</title>
</head>
<body>
<pre><script type="text/javascript">
// 文章の「てにをは」と句読点、改行以外を「○」に置換
var str = "吾輩は猫である。\n"
+ "名前はまだない。\n"
+ "どこで生れたか、とんと見当けんとうがつかぬ。\n"
+ "何でも薄暗いじめじめした所でニャーニャー"
+ "泣いていた事だけは記憶している。\n"
+ "吾輩はここで始めて人間というものを見た。\n"
+ "しかもあとで聞くとそれは書生という"
+ "人間中で一番獰悪な種族であったそうだ。\n"
+ "この書生というのは時々我々を捕えて"
+ "煮て食うという話である。\n";
str = str.replace(/[^てにをは、。\n]+/g, "○");
// 「/[^てにをは、。\n]+/g」で、
// 「^てにをは、。\n]+」で、
// 「てにをは」句読点、改行以外の1文字の繰り返し
// 「g」すべて
// という意味
document.writeln(str);
</script></pre>
</body>
</html>
○は○。 ○は○。 ○、○。 ○て○は○て○。 ○は○て○を○。 ○は○。 ○は○を○て○て○。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- マンガで分かるプログラミング用語辞典連載記事一覧
- この記事の著者
-
柳井 政和(ヤナイ マサカズ)
クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
