Microsoft Access 掲示板

あいまいな置換 / 1

3 コメント
views
1

のように置換のルールを並べて記載して

置換対象が「文字列」ではなく「ルール」ですから、VBA.Replace関数での実装は難しいでしょう
別案として 正規表現のUDFを利用する方法をご紹介します

 
■ユーザー定義関数

Public Function LAA_Replace(ByVal html As Variant _
                          , ByVal reg_pattern As String _
                          , ByVal reg_replace As String) As Variant
    LAA_Replace = html
    If (LenB(Nz(html)) = 0) Then Exit Function
    
    With CreateObject("VBScript.RegExp")
        .Global = True
        .IgnoreCase = True
        .Pattern = reg_pattern
        If (.Test(html)) Then
            LAA_Replace = .Replace(html, reg_replace)
        End If
    End With
End Function

 
■SQL ( 文中のテーブル名は実際の名前に置き換えて下さい )

SELECT ID
     , 品番
     , 説明文
     , LAA_Replace( 説明文, "(<(?:table|t[hd]|span))\s[^>]*(>)", "$1$2" ) as タグ指定置換
     , LAA_Replace( 説明文, "(<\w+?)\s[^>]*(>)", "$1$2" ) As タグ無差別置換
FROM テーブル名
ORDER BY 1
;

 
なお、正規表現に馴染みが無い場合は chatGPT あたりを利用し、AI に

vbscript 正規表現 マニュアル

というメッセージを送ってみたり、Grok

vbscript 正規表現 メタ文字

とでも尋ねてみると、それなりの例やマニュアルを提示してくれるでしょう

通報 ...