• ベストアンサー

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

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

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10261)
回答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/17068)
回答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

  • 正規表現で一桁の数字を二桁に置換する方法

    いつもお世話になっています。 yahoopipesでページからrssを作っています。 「2012/12/12」などとなっている数字をpubdateとしてソートしたのですが、一桁の月日の場合「2012/1/1」など二桁になっていないためか、うまく降順に並びません。 二桁の数字はそのままで、一桁の数字は頭に0をつけて二桁にする正規表現はどう書けばよいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現で半角数字1桁のみを全角数字に変換

    お世話になります。 JavaScript(JSP)で、 正規表現で半角数字1桁のみ(2桁以上は変換しない)を、 全角数字に変換する方法を教えてください。 たとえば、 ”hoge3hoge5”文字列内の、 半角数字1桁のみを、 正規表現で、全角数字1桁に、それぞれ変換   ↓ ”hoge3hoge5” あわせて、 半角数字が2桁以上、連続で続いている場合には 変換せずに、半角数字のままにしておきたいです。 ”hoge33hoge5”    ↓ 正規表現で、半角数字1桁のみを、全角数字1桁に変換 (半角数字2桁以上は変換しない) ”hoge33hoge5” 以上になります。 もしご存じの方がいらっしゃいましたら、 よろしくお願いします。

  • 正規表現について

    いま.Netで正規表現にチャレンジしているのですが、どこが問題なのか分からず、投稿させていただきました。 正規表現のパターンです。 \\[Cc]\[(?<$0>[0-9]+),(?<$1>[0-9]+),(?<$2>[0-9]+)\] で、マッチさせたい文字列は、 \C[255,255,255] です。「[255,255,255]」の数字の部分は、一桁から三桁までの数字であれば何でもOKです。 マッチしないことは、http://jsregex.com/を使って調べました。 どうぞよろしくお願いします。

  • (秀丸)正規表現で、変数¥1内より、""のみ削除

    お世話になります。 秀丸エディタの正規表現で、 変数¥1内に、取得した文字列値が、 "1,234" だった場合、 その変数値より、""(ダブルコーティション)のみを削除して、 変数¥1内に、 1,234 として、セットし直したいです。 そこでご質問させていただきますが、 既存の変数¥1内に取得する為の正規表現のところに対して、 さらに、 どのように正規表現を追記すれば、 上記しましたように、 変数¥1内に、 1,234 として、セットし直すことが出来ますでしょうか? 以上になります。 宜しくお願いいたします。

  • 至急*正規表現教えて下さい

    お世話になります。 正規表現で次のようにしたい場合の記述を教えてください。 1.HTMLタグ全てを削除 現在は <("[^"]*"|'[^']*'|[^'">])*> と指定しています。 2.「2012.1.1」や「2012.1.10」など一桁の数字だけ「2012.01.01」「2012.01.10」と二桁にしたい。 「2012.12.12」などは二桁のままにしたい 現在 (\d{4}).(\d{1-9}).(\d{1-9}) を $1.0$2.0$3 としたら 2012.1.10が2012.01.01 と下一桁が無視されてしまいました… 3.HTMLタグと文字全て 現在 ^.*$ 使用したい場所はYahoo!pipesです。 宜しくお願いします!

    • 締切済み
    • PHP
  • 正規表現

    数字と大文字、小文字のアルファベットは入力OK。 記号も入力OK。でも、記号の中でも「”」、「.」は ダメ。しかも、10桁くらい入力できるようにする。 を表す正規表現は [a-zA-Z0-9&&[\"\.]]* と思ったのですが、 正しく表す正規表現はどの様なものになるのでしょうか? お願いします。

    • ベストアンサー
    • Java
  • 正規表現の初心者です

    正規表現初心者です。 なぜ、 [0-9]+ という正規表現が下記の112にあたらないのでしょうか? 0-9(数字)の一文字以上の繰り返しなので、複数桁の数字にマッチすると思ったのですが・・。 echo 112|grep -e "[0-9]+" > (マッチせず)

  • 正規表現で全角数字を半角数字に置換する方法は?

    いつもお世話になっております。 テキスト内の全角数字5桁のみを該当の半角数字5桁に置換する方法を探しています。 OS:Win テキストエディタ:sakuraエディタ、秀丸 例) ---------------------------------------- あいうえお01234かきくけこ99さしすせそ ↓ あいうえお01234かきくけこ99さしすせそ ---------------------------------------- 正規表現で行えばいいと思い、置換文字列を  [0-9][0-9][0-9][0-9][0-9] あるいは  [0-9]{5} にしましたが、置換後の文字列が分かりません。 試しに検索で上記の文字列を試すと、該当箇所がマークされるので、 置換前の文字列は合っています。 置換後の文字列をご教授願えますでしょうか。 ※テキストエディタで無理ならプログラム組みます。 VBScriptを考えていますが、他に良い言語があれば併せて教えてください。

  • VBScriptの正規表現で半角スペースをマッチ

    VBScriptの正規表現で、半角スペースや全角スペースをマッチさせたいです。 どうしたらよいでしょうか。 よろしくお願いします。

  • InDesign 正規表現 一桁の数字

    5(20.0%) 0(0.0%) 10(40.0%) こんな感じで一桁と二桁の数字が混じっている文字列の 一桁の数字の前に数字のスペースをつけて桁揃えしたいです 検索: (?<=[^\d\.])(\d)(?=\D) 置換: ~/$1 こんな感じで書いたんですがこれでは 文字列の一番最初のものが引っかかりません 「行頭または数字かドット以外に続く」 というのを表現できればいいのですが いろいろ試してもうまくいきません どう書けばいいのでしょうか

専門家に質問してみよう