reReplace

正規表現置換を行います。

構文
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 / Topic

PRINT 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})”)
結果
090-1123-4567
070-5123-4567

日付の形式を”yyyy年mm月dd日”形式から”yyyy/mm/dd”形式にする

PRINT reReplace(“2021年6月4日”, “$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