sql >> データベース >  >> RDS >> Oracle

正規表現の特殊文字の削除

    select '11dd$%[email protected]
     ' 入力として、regexp_replace('11dd$%[email protected]
     ', '[^[:alnum:]]') as outputfrom dual;INPUT OUTPUT ------------ --------11dd$%[email protected]
     11dde11h  

    [:alnum:] すべての文字 (標準の ASCII 文字、小文字と大文字) およびすべての数字の短縮形です。 [^ ... ] ... を除くすべてを意味します .したがって、これは文字と数字を除くすべてを...何も置き換えません (REGEXP_REPLACE に 3 番目の引数を与えていないため)。

    編集 :OP が質問に 2 番目の部分を追加しました。

    割り当てがすべての英数字のみを削除し、他のすべてを保持することである場合は、単純に ^ を削除します 正規表現から。

    select '11dd$%[email protected]
     ' 入力として、regexp_replace('11dd$%[email protected]
     ', '[[:alnum:]]') as outputfrom dual;INPUT OUTPUT------------ ------11dd$%[email protected]
     $%[email protected]
       


    1. PythonコードでMySQLIN句をパラメータ化する

    2. SQLServerのダーティリードの問題を理解する

    3. SQL Server REPLACE()とTRANSLATE():違いは何ですか?

    4. ssrsチャートのSQLクエリ式で存在しない値を処理する