• ベストアンサー

【VBScript】正規表現で数字の前0(ゼロ)を削除

【VBScript】正規表現で数字の前0(ゼロ)を削除 ある変数に3桁の数字が格納されています。 例えば、001とか099とか403とか800とかです。 やりたいことは、数字の頭のゼロを削除したいです。 001→1 099→99 403→403のまま 800→800のまま 正規表現でなくても良いですが、 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

正規表現を使うとこんな感じで。 str = "001" 等 Set re1 = New RegExp regEx.Pattern = "0*([0-9]+)" WScript.Echo re1.Replace(str, "$1") 3桁固定であれば、leftを使っても良いですね。 str = "001" 等 if left(str,1)="0" then str = mid(str,2) if left(str,1)="0" then str = mid(str,2) WScript.Echo str

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

データはどういう状態で存在するのか。変数の元データはなに(どこ)。 (1)エクセルのシートの、あるところの、セルに単独で (2)エクセルのシートのセルの文章の中で (3)テキストファイルの文章の中で (4)CSVファイルのカンマ区切りのデータとして(文章の中でなく) (5)ワードの文章の中で (6)その他 これを書かないと、方法が変る。特に単独か、文章の中かは複雑さを決める。 自分の場合しか念頭にないね。 こういう客観化した特徴を意識することが、プログラマやコンピュタ利用者には求められる。 本当に変数だけの話なら、正規表現のような大げさなことを考えるのでなく、 VBA、Vbscriptでよければ Sub test01() 'a = "009" 'a = "401" a = "800" an = Val(a) MsgBox an stra = Trim(Str(an)) MsgBox "*" & stra & "*" End Sub を参考に、出来るだろう。良く使う関数Strを知らないだけでしょう。

noname#144013
noname#144013
回答No.2

こんにちは。 以下は、別案の一例です。 数字が整数で、かつ、整数型(Integer or Long)の値の範囲内なら、 数字(文字列)を一旦、整数型(Integer or Long)の数値に変換し、 再度、文字型(String)に変換すれば、先頭の"0"を削除できると 思います。 ■サンプルコード ====================== '== Zero Suppress == Option Explicit Dim i, nNum Dim sArray, str1, str2, sMsg sArray = Array("001", "099", "403", "800") nNum = UBound(sArray) sMsg = "" For i = 0 To nNum str1 = sArray(i) str2 = CStr(CLng(str1)) sMsg = sMsg & str1 & " => " & str2 & vbNewLine Next WScript.Echo sMsg ====================== <サンプルの実行結果> 001 => 1 099 => 99 403 => 403 800 => 800 以上です。

関連するQ&A