【拡張機能】 文字列判定(正規表現)
機能概要
指定した文字列が正規表現に一致するかどうか判定を行います。
作業対象画面
項目説明
・「項目A」
正規表現と照らし合わせる文字列を指定します。
なお、タブや改行を含む文字列を指定する場合は以下の特殊文字を使用します。
`t:タブ `r`n:改行
・「項目B」
正規表現を指定します。
・「変数C」
文字列「項目A」に対して正規表現「項目B」が一致すれば「○」を、一致しなければ「×」を「変数C」に格納します。
正規表現とは
ある法則に則った文字列のパターンを記号と文字の組合せで表記する方法。
これを用いることで、あるパターンの文字列を指定したルールに従って置換することができます。例えば括弧()で囲まれた部分を別のテキストに置き換えるなど、ルールが定まっていれば正規表現の記述でそれを指定する事が可能。
正規表現は様々な記述方法があり、それに関する説明だけで一冊の本が書けてしまうボリュームのため、詳細についてはここでは省略します。Google検索等で「正規表現 文法」「正規表現 置換」などで検索すれば記述方法を調べることができます。
よく使われる正規表現
記号 | 記号の役割 | 例 | 説明 |
. | 任意の1文字。改行は除く。 | 「…」 | 「」内に任意の3文字がある場合にマッチ |
* | 直前の1文字の0回以上の繰り返し | Hoge* | HogeもしくはHogeが先頭につく文字列にマッチ |
^ | 文字列の先頭 | ^[0-9] | 先頭文字が数字にマッチ |
$ | 行の末尾 | ^.{10}$ | 10文字にマッチ |
[] | 括弧内の任意の1文字と一致。「-」で範囲指定可能 | [a-z] | 小文字アルファベット1文字にマッチ |
[^] | 括弧内の任意の1文字と不一致。「-」で範囲指定可能 | [^A-Z] | 大文字アルファベット以外にマッチ |
+ | 直前の文字の1個以上の繰り返し | Hoge+ | Hogee、Hogeeee、等にマッチ |
? | 直前の文字の0もしくは1文字 | Hoge? | Hoge、Hogeeにマッチ |
{n} | 直前の文字のn個の繰り返し | Hoge{2} | Hogeeeにマッチ |
{,n} | 直前の文字のn個以下の繰り返し | Hoge{,2} | Hogeee、Hogeeにマッチ |
{m,} | 直前の文字のm個以上の繰り返し | Hoge{2,} | Hogeee、Hogeeee、等にマッチ |
{m,n} | 直前の文字のm個以上、n個以下の繰り返し | Hoge{3,2} | Hogeee、Hogeeeeにマッチ |
| | どちらかのパターン | Hoge|Suga | Hoge、Sugaにマッチ |
() | 括弧内をグループ化し、マッチした内容を$nで参照できる | 「(.+)」 | 「」で囲まれた部分にマッチ。 参照する場合は$1で指定。参照が複数ある場合は$2,$3・・・となります。 |
注意事項
- 正規表現の文法は.Netに準拠します。(※プログラム言語より若干文法に違いがある)
使用例
- 基本機能「繰り返し 条件の成立」「条件分岐 変数指定による分岐」と組み合わせる
拡張機能「文字列比較(一致/不一致)」を用いることで、部分一致、前方一致、後方一致を行う事が可能となるが、本機能ではさらに複雑な条件指定が行えるようになります。
- testで始まり数字が0個以上続く
項目Bに“^test[0-9]*”を指定
- 7文字
項目Bに“.{7}”を指定
- データ形式が正しいかどうか判別を行います。
例1)項目Aが英数字であるか判定を行う
項目Bに“^[0-9a-zA-Z]+$”を設定
例2)項目Aが“yyyy/mmm/dd”の形式になっているか判定を行います。
項目Bに“\d{4}/\d{1,2}/\d{1,2}”を設定