reTest

構文
Boolean = reTest( str, Pattern, [IgnoreCase, Global] )
引数
str
正規表現による検索の対象となる文字列
Pattern
正規表現で使用するパターンを設定
IgnoreCase
大文字・小文字を区別しない場合はTrue、区別する場合はFalse
Global
文字列全体を検索する場合はTrue、しない場合はFalse
戻値
正規表現にマッチするかどうか

プログラム

////////////////////////////////////////////////// // 【引数】 // str : 正規表現による検索の対象となる文字列 // Pattern : 正規表現で使用するパターンを設定 // IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse // Global : 文字列全体を検索する場合はTrue、しない場合はFalse // 【戻値】 // 正規表現にマッチするかどうか ////////////////////////////////////////////////// FUNCTION reTest(str, Pattern, IgnoreCase = TRUE, Global = TRUE) DIM re = CREATEOLEOBJ("VBScript.RegExp") re.Pattern = Pattern re.IgnoreCase = IgnoreCase re.Global = Global RESULT = re.Test(str) FEND

プログラム実行例

数値から月の異名を求める

DIM month[12] = "睦月", "如月", "弥生", "卯月", "皐月", "水無月", "文月", "葉月", "長月", "神無月", "霜月", "師走" DIM str = INPUT("1〜12の数値を入力してください。") IFB reTest(str, "[1-9]|1[0-2]") THEN PRINT month[str- 1] ELSE PRINT "1〜12の数値を入力してください。" ENDIF ////////////////////////////////////////////////// // 【引数】 // str : 正規表現による検索の対象となる文字列 // Pattern : 正規表現で使用するパターンを設定 // IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse // Global : 文字列全体を検索する場合はTrue、しない場合はFalse // 【戻値】 // 正規表現にマッチするかどうか ////////////////////////////////////////////////// FUNCTION reTest(str, Pattern, IgnoreCase = TRUE, Global = TRUE) DIM re = CREATEOLEOBJ("VBScript.RegExp") re.Pattern = Pattern re.IgnoreCase = IgnoreCase re.Global = Global RESULT = re.Test(str) FEND
結果
INPUT:3>7
文月
解説
  1. 1行目
    DIM month[12] = "睦月", "如月", "弥生", "卯月", "皐月", "水無月", "文月", "葉月", "長月", "神無月", "霜月", "師走"
    月の異名を配列に格納
  2. 3行目
    DIM str = INPUT("1〜12の数値を入力してください。")
    インプットボックスを表示する。
  3. 5-9行目
    IFB reTest(str, "[1-9]|1[0-2]") THEN PRINT month[str- 1] ELSE PRINT "1〜12の数値を入力してください。" ENDIF
    条件
    正規表現を使い入力された値が1〜12の整数かどうか。
    [1-9]|1[0-2]
    1~9の整数
    [1-9]|1[0-2]
    10~12の整数
    [1-9]|1[0-2]
    「1〜9の整数」または「10~12の整数」→「1〜12の整数」
    TRUE(1~12の整数ならば)
    month[0]に1月、month[1]に2月の異名が格納されているので、「入力された数値-1」番目に格納されている文字列を出力。この例の場合入力値が「7」なので、「month[6]」の「文月」を出力します。
    FALSE(それ以外ならば)
    「1〜12の数値を入力してください。」を出力。