leftTrim関数

本ページには広告が含まれています。

文字列の左側から制御文字もしくはcharactersに指定された文字群を取り除きます。

構文
  1. String = leftTrim( str, characters )
引数
str (String)必須
文字列
characters (String = \x00..\x1F\x7F)省略可
削除する文字、デフォルトでは制御文字を表すASCII文字コードの範囲(\x00..\x1F\x7F)が指定されています。文字の範囲を指定する場合は、開始文字..終了文字の形式で指定。
戻り値
左側の制御文字もしくは指定された文字が取り除かれた文字列

プログラム

UWSC
//////////////////////////////////////////////////
// 【引数】
//   str : 文字列 
//   characters : 削除する文字、デフォルトでは制御文字を表すASCII文字コードの範囲(\x00..\x1F\x7F)が指定されています。文字の範囲を指定する場合は、開始文字..終了文字の形式で指定。 
// 【戻り値】
//   左側の制御文字もしくは指定された文字が取り除かれた文字列 
//////////////////////////////////////////////////
FUNCTION leftTrim(str, characters = "\x00..\x1F\x7F")
	characters = REPLACE(characters, "-", "\-")
	IF reTest(characters, "\\x[0-9A-Fa-f]{2}\.\.\\x[0-9A-Fa-f]{2}") THEN characters = REPLACE(characters, "..", "-")
	RESULT = reReplace(str, "", "^[" + characters + "]+")
FEND

//////////////////////////////////////////////////
// 【引数】
//   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

//////////////////////////////////////////////////
// 【引数】
//   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

使い方

左側のゼロを削除

0007890の左側から連続するゼロを削除します。右側のゼロは残ります。

UWSC
PRINT leftTrim("0007890", "0")
結果
プレーンテキスト
7890

左側のアルファベット大文字を削除

ABC123の左側から連続するアルファベット大文字を取り除きます。

範囲を指定する場合は開始文字と終了文字の間に..を記述します。A..Zがアルファベット大文字のAからZの26文字を表しています。

UWSC
PRINT leftTrim("ABC123", "A..Z")
結果
プレーンテキスト
123