正規表現入門
正規表現・・・。
堅苦しい表現ですが、まさにその通り。
っとまだまだ見習いな僕は思ってしまったり。
ですが、必要な知識なので少し勉強したことをまとめてみよう!
正規表現とは
辞書的に言うと「文字列を表現する方法」
・・・。
わかりにくいですね...orz
僕的には実際使われ方で見たほうがわかりやすいかな・・と。
よく使うのは
- フォーム等での入力チェク(検索)
- 文字列の置き換え
大体このへんじゃないでしょうか。
今回はフォームの入力チェックで例をしてみましょう。
メタキャラクタ
メタキャラクタは正規表現で使う特殊文字です。
と言っても分かりづらいので実際に例を見てみましょう。
[0-9]
なんとなく意味がわかるのではないでしょうか。
この表現が指す意味は簡単で「0から9まで」です。
[ ]は中の文字ををクラスという文字セットにで扱います
- (マイナス)は、範囲を表わす特別の文字です。
これを入力フォームのチェックに使うと数値意外の文字が入っていないか判定できます。
同じくアルファベットも同様に[a-zA-Z]とも表現出来ます。
なんとなく読めたら便利ですよね。
他にもメタキャラクタはあります。
メタキャラクタ | 意味 | サンプル |
---|---|---|
^ | 文字の先頭を表します | ^hatena 先頭がhatenaで始まる文字とマッチ |
$ | 文字の終わりを表します | blog$ 文末がblogとマッチ |
[ ] | 中の文字ををクラスという文字セットで判定 | [0-9] 0から9まで |
[^ ] | 中の文字以外 | [^0-9] 0から9を除く文字とマッチ |
( ) | 括弧内を一つのグループとして扱う | +を参照 |
. | 任意の一文字 | ..a 12aでもdbaでもマッチ |
+ | 直前文字の1回以上の繰り返し | (abc)+ abcやabcabc等がマッチ |
- | 範囲を表わす | [0-9] 0から9まで |
* | 直前文字の0回以上の繰り返し | bul* bul , bu, bulllでもマッチ |
| | または(or)の意 | abc|xyz abcもしくはxyzでマッチ |
? | 直前文字の0または1回だけの登場 | abc? ab , abcのみにマッチ |
¥ | 特殊文字を入力する場合に使用 | ¥の表現は¥¥と入力 |
上記の内容はあくまで一例の基礎部分です。
実際には組み合わせて使用したり、はじめに記載した文字の置換もできます。
多くの言語で使用する内容なので覚えている方が効率よくプログラミングできるのではないでしょうか。
次回はもう少し掘り下げた内容で記事にしたいと思います。