正規表現で検索した複数の結果を取得する
matches p1,p2,p3,p4,p5,p6
p1:結果を受け取る変数 p2:検索される文字列 p3:検索する文字列 p4(0):大文字と小文字を区別するなら1 p5(0):最初の結果だけを取得するなら1 p6(0):全体を一つの行と見なすなら1
(プラグイン / モジュール : mod_regexp)
p2の文字列からp3に一致した複数の結果をサブマッチを含めて一度に取得します。 p3には正規表現のパターンを指定します。 p4を1にすると大文字と小文字を区別します。0や省略した場合は区別しません。 p5を1にすると最初に一致した結果だけを取得します。0や省略した場合は全ての結果を取得します。 p6を1にするとメタ文字 ^ と $ が改行直後・直前に対応しません。0や省略した場合は対応します。 p1の変数は初期化され、結果はp1の配列にセットされます。 一番目に一致した文字列はp1(0)に、二番目に一致した文字列はp1(1)に格納されます。 さらに、一番目に一致した文字列のなかの一番目のサブマッチはp1(0,1)に、二番目のサブマッチはp1(0,2)に格納されます。 statに一致した文字列の数がセットされ、0なら一つも一致していないことになります。 サブマッチの数はlength2を使って調べられます。 正規表現のパターンについてはmatchの項目を参照してください。
#include "mod_regexp.as" a={" 太郎:算数=50,国語=100,社会=70 一郎:算数=30,国語=50,社会=60 花子:算数=60,国語=40,社会=50 "} matches b,a,"(.*):算数=(\\d+),国語=(\\d+),社会=(\\d+)" repeat stat mes b(cnt) mes "\t"+b(cnt,1)+"の総得点="+(0+b(cnt,2)+b(cnt,3)+b(cnt,4)) loop ;-------------結果------------ ;太郎:算数=50,国語=100,社会=70 ; 太郎の総得点=220 ;一郎:算数=30,国語=50,社会=60 ; 一郎の総得点=140 ;花子:算数=60,国語=40,社会=50 ; 花子の総得点=150
match | 正規表現で検索して最初に一致した文字列を返す | (mod_regexp) |
submatch | 正規表現で検索して最初に一致したサブマッチ文字列を返す | (mod_regexp) |
replace | 正規表現で文字列の置換を行う | (mod_regexp) |
プラグイン / モジュール | mod_regexp |
備考 | Internet Explorer 5.5 以上が必要 |
グループ | 正規表現検索命令 |
ヘッダファイル | common\mod_regexp.as |