本ページには広告が含まれています。
目次
正規表現置換を行います。
- 構文
- UString = reReplace( str1, str2, Pattern, IgnoreCase, Global )
- 引数
- str1 必須
- 置換される文字列
- str2 必須
- 置換後の文字列
- Pattern 必須
- 置換する文字列のパターン
- IgnoreCase 省略可
- 大文字・小文字を区別しない場合はTrue、区別する場合はFalse
- Global 省略可
- 文字列全体を検索する場合はTrue、しない場合はFalse
- 戻り値
- 正規表現置換後の文字列
プログラム
//////////////////////////////////////////////////
// 【引数】
// str1 : 置換される文字列
// str2 : 置換後の文字列
// Pattern : 置換する文字列のパターン
// IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse
// Global : 文字列全体を検索する場合はTrue、しない場合はFalse
// 【戻り値】
// 正規表現置換後の文字列
//////////////////////////////////////////////////
FUNCTION reReplace(str1, str2, Pattern, IgnoreCase = TRUE, Global = TRUE)
DIM re = CREATEOLEOBJ("VBScript.RegExp")
re.Pattern = Pattern
re.IgnoreCase = IgnoreCase
re.Global = Global
RESULT = re.Replace(str1, str2)
FEND
使い方
携帯電話・PHSの番号を10桁から11桁に変換
FAQ for YAMAHA RT Series / TopicPRINT reReplace("010-123-4567", "090-$1$2-$3", "0([1-489])0-(\d{3})-(\d{4})") // 携帯電話
PRINT reReplace("050-123-4567", "070-$1$2-$3", "0([56])0-(\d{3})-(\d{4})") // PHS
- 結果
090-1123-4567 070-5123-4567
日付の形式を"yyyy年mm月dd日"形式から"yyyy/mm/dd"形式にする
PRINT reReplace("2021年06月04日", "$1/$2/$3", "(\d+)年(\d+)月(\d+)日")
- 結果
2021/06/04
メールアドレスのユーザー名(@より左側)をアスタリスクで置換
PRINT reReplace("info@example.com", "*****@$2", "([a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+)@([a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*)")
- 結果
*****@example.com
関連記事
- isDate関数 (自作関数)
- 引数に指定した値が日付として認識できる場合はTrueを返します。認識できない場合はFalseを返します。
- reExecute関数 (自作関数)
- 正規表現 検索を行います。
- reTest関数 (自作関数)
- マッチングを行い、マッチしたかどうかを真偽値で返します。
- RegExp オブジェクト
- substrReplace関数 (自作関数)
- REPLACE関数 (スクリプト関数)