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]
プレ>