• ベストアンサー

文字列から半角数字以外を除去したい

いつもお世話になっております。 現在、SQLServer2000(SP4)、Visual Basic6.0(SP5)を使って開発しています。 ある文字列から、半角数字以外を除去したいのですが、対象データの数が多いので、ループさせたりして、時間が掛かる処理は避けたいと思っています。 なるべく簡単な操作で文字列から半角数字以外を除去する方法を御存知でしたら教えてください。 【やりたい事の例】 ・0120-123-123 → 0120123123 ・a123456 → 123456 以上、宜しくお願いします。

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

  • ベストアンサー
回答No.1

お世話になります。 プロジェクトの参照設定で Microsoft VBScript Regular Expressions 5.5 にチェックを入れます。 以下のような感じで、RegExp.Replace を実行します。 Dim reg As RegExp Set reg = New RegExp reg.Pattern = "\D" reg.Global = True Dim str As String str = "0120-123-123" str = reg.Replace(str, "") Debug.Print str ' 0120123123 が出力される str = "a123456" str = reg.Replace(str, "") Debug.Print str ' 123456 が出力される Set reg = Nothing

参考URL:
http://homepage1.nifty.com/rucio/main/technique/InputChk2.htm
bou7
質問者

お礼

回答、ありがとうございました。 多分恥ずかしいことだと思うのですが、「正規表現」と言うものを知りませんでした。 今回の方法、大変勉強になりました。 どうもありがとうございました。

その他の回答 (1)

noname#22222
noname#22222
回答No.2

力技ですが・・・。 Private Sub コマンド0_Click()   Dim I As Integer   Dim C As String      For I = 1 To 26     C = Mid("-abcdefghikl;knopqrstuvwxyz", I, 1)     CnnExecute "UPDATE TABLE1 SET Test=REPLACE(Test, '" & C & "', '');"   Next   MsgBox "終りました!" End Sub CnnExecute 関数は自作する必要があります。

bou7
質問者

お礼

回答、ありがとうございました。 でも今回は、No.1さんが教えてくださった、「正規表現」と言うものを使ってみたいと思います。 折角教えてくださったのに、申し訳ありません。

関連するQ&A