正規表現は、文字列のパターンを表すための記法の一種で、標準的に広く使用されています※。プログラミングするときはもちろん、色々なソフトで利用できるので、知っておいて損はありません。(損したらゴメン)
※ 正確には違いますけど、形式言語や計算機科学の研究者じゃなければ、知らなくても大丈夫です。
バックアップするノでは、boost のディフォルトの正規表現を使用しているので、Perl と同じ表現が使えます。例外的に
/
を
¥
(正規表現で表すと ¥¥
)
として解釈する拡張機能がありますが、/
はパスに使用できない文字なので、普通の正規表現と同じと考えていたとしても、問題は生じません※。
※ 知っていると
¥¥
を
/
1文字で表現できて便利です。
boost regex - Perl Regular Expression Syntax
リンク先は英語だし、情報が多すぎると思うので要点を整理します。
.[{}()¥*+?|^$
上で記した文字は特殊な意味を持ちますが、それ以外の文字はそのままの文字を意味します。例えば、正規表現
ABC
は
ABC
を含む文字列を表すので、ABC
そのものや、ABCX
、ZABCX
などがマッチします。
特殊な記号そのものを表すには、前に
¥
を置きます。例えば、.
そのものを表わす正規表現は、¥.
です。¥
を表す正規表現は、¥¥
です。バックアップするノでは
¥¥
の代わりに
/
を使うこともできます。これは、Perl の正規表現と違う唯一の部分ですが、知らなくとも問題ありません。
[
と
]
で囲うことで文字のグループを作成できます。例えば、[Aa]
は、A または a にマッチします。バックアップするノ
では、アルファベットの大文字小文字は区別されるため、例えばテキストファイルにマッチさせるには、
¥.[tT][xX][tT]$
のようにする必要があります。
.
は任意の1文字を表わすので、
.
は空文字列以外の全ての文字列にマッチします。
^
は先頭を、$
を表す特殊文字です。例えば、
¥¥$
は、¥
で終わる文字列にマッチします。バックアップするノ
では、全てのフォルダーにマッチする表現となります。
*
は直前の文字の 0 回以上の繰り返しを表します。0 回も含むので文字が無くてもよいことになります。例えば、
a*
は a を 1 つも含まなくてもよいので、全ての文字列にマッチします。a を 1 つ以上含む文字列にマッチさせるには、
aa*
もしくは、
a+
を使います。+
は、ほぼ
*
と同じ機能を持ちますが、0 回でなく、1 回以上の繰り返しを表す特殊記号です。
よく使う記号は以上なので、1 つの例を示して説明を終えます。
^a.*\.txt$
は、a
で始まり、.txt
で終わる文字列にマッチします。.*
は任意の文字の 0 回以上の繰り返しを表していて、頻繁に使われる表現なので覚えておきましょう。
ご意見・ご要望などは
フォームメール
から送信してください。
更新情報は、
ブログ
でも配信してます。