【VBScript】正規表現で置換【RegExp】

この記事は約3分で読めます。

ツールを作っているとよく使うのが 『正規表現』 です。

正規表現って何?どういうときに使うの?

そんな人のために、軽く説明するとこんな感じ。

例:『"僕の生年月日は2020年05月05日"の数字を全部『x』にしたい』

◆普通の置換
『1』⇒『x』、『2』⇒『x』...
 何度もやらないといけなかったり、これは"変えたくない!"とかできない

◆正規表現の置換
 『\d』⇒『x』
 この一回で数字が全て変わります。
 書き方次第で、大体の要望は対応できる。

正規表現自体の説明をすると、それだけで本ができるほどなので、ココでは割愛。
雰囲気として 『一括処理が楽になるモノ』 ぐらいの認識でいいです。

僕は正規表現を知った時、感動しました。
正規表現自体を使いこなすには、とにかく使ってなれるのが大事!

この記事の著者
のら

お家大好きSE

soratsm

プロフィール

都内で働くシステムエンジニア
素早く家に帰るために日々技術を磨いています。
学んだ技術をわかりやすく紹介します! プロフィール詳細

スポンサーリンク

コード

'正規表現置換
Function ReplaceText(targetText , replacePattern , afterPattern)
    Dim objRegExp
    Set objRegExp = CreateObject("VBScript.RegExp")

    '条件の設定(基本的にこの条件)
    With objRegExp
        .Pattern = replacePattern
        .IgnoreCase = True
        .Global = True
    End With

    '置換実行
    ReplaceText = objRegExp.Replace(targetText , afterPattern)
    Set objRegExp = Nothing
End Function

解説

このFunctionでは引数を3つ渡してます。
(Function = 戻り値を返す / Sub = 戻り値を返さない)

targetText

置換対象文字:上の例で"僕の生年月日は2020年05月05日"に当たる部分

replacePattern

置換するパターン::上の例で"\d"に当たる部分
◆よく使うパターン文字
 『\r\n』改行文字
 『\t』タブ
 『()括弧』変数として置換後に使える

afterPattern

置換後の出力パターン::上の例で"x"に当たる部分
◆よく使うパターン文字(VBScriptの場合)
 『vbCrLf』改行文字
 『vbTab』タブ
 『$1(数字)』置換するパターンの『()括弧』に対応する値

改行文字やタブについて、普通は前後で同じでいいんですが、VBScriptの場合は違いがあるので注意です。

正規表現自体の記述方法は『正規表現 チートシート』などで検索すると出てくるので興味があれば調べてみて下さい。

参考までに忘れたときに見ている記事をリンクしておきます。

VBA と VBScript で違いはある?

どっちも同じ

タイトルとURLをコピーしました