正規表現の基本

スポンサーリンク

はじめに

正規表現とは、文字列の集合を1つの文字列で表現するための方法です。簡単に説明すると、英数字や記号を組み合わせて任意の文字列を表現しましょう、ということです。表現という言い方がピンとこなければ「検索」と読み替えてもらっても良いです。あくまでもイメージとして捉えて下さい。

たとえば、「abcde」という文字列があったとします。bcdを表現したい場合、「b.d」や「b.*d」と記載することができます。

正規表現を使いこなせれば文字列の検索や置換などで非常に役立ちます。ただ正規表現は奥が深く簡単にマスターできるものではありません。使いこなすにはかなり勉強しなければならないので、まずは基本だけでも使えるようにしましょう。

正規表現の基本

記号意味
.任意の一文字
*直前の文字の0回以上の繰り返し
?直前の文字は省略可能
\n改行
\tタブ

サンプル

条件記述方法結果
行頭がPATTERNで始まる文字列^PATTERNaaaaa
bbbbb
PATTERN
ccccc PATTERN
ddddd PATTERN eeeee
行末がPATTERNで終わる文字列.*PATTERN$aaaaa
bbbbb
PATTERN
ccccc PATTERN

ddddd PATTERN eeeee
PATTERNを含む文字列.PATTERN.$aaaaa
bbbbb
PATTERN
ccccc PATTERN
ddddd PATTERN eeeee
行頭がPATTERNで始まらない文字列^(?!PATTERN).*$aaaaa
bbbbb

PATTERN
ccccc PATTERN
ddddd PATTERN eeeee
行末がPATTERNで終わらない文字列^.*(?<!PATTERN)$aaaaa
bbbbb

PATTERN
ccccc PATTERN
ddddd PATTERN eeeee
PATTERNを含まない文字列^(?!.*PATTERN).*$aaaaa
bbbbb

PATTERN
ccccc PATTERN
ddddd PATTERN eeeee

どういう時に利用するのか?

プログラマーであれば開発の中で利用することが多いと思います。それ以外だとテキストエディタですね。テキストデータの加工によく正規表現を使います。

例えば、あるテキストデータから不要な文字列を削除する、もしくは追加するなどです。テキストデータの加工ではいかに早く確実に任意の形に整形できるかSEとしての腕の見せ所です。

コメント