文字列のテーブル列には、数字/特殊文字/空白を含めることができます。数字/特殊文字/空白を空の文字に置き換えたい、regexp_replace
という名前の関数がありますが、次の文字列を使用したいなど、ユーザーフレンドリーなヘルプをあまり使用しない方法があります。
String = 'abc$wanto&toremove#special~chars'
上記の文字列からすべての特別な文字と数字を削除したいのですが、a-z
とA-Z
のみを許可したいのですが、残りの文字は''
に置き換える必要がありますか?
select regexp_replace('abc$wanto&toremove#special~chars', '[^a-zA-Z]', '', 'g')
私にとっては、次のように働いた。
regexp_replace(code, '[^a-zA-Z0-9]+', '','g')
グローバルフィルターを追加して、文字列全体に対して正規表現を繰り返します。
例、
SELECT regexp_replace('Well- This Did-Not work&*($%%)_', '[^a-zA-Z0-9]+', '')
戻り値:「WellThis Did-Not work&*($ %%)_」
SELECT regexp_replace('Well- This Did-Not work&*($%%)_', '[^a-zA-Z0-9]+', '','g')
戻り値:「WellThisDidNotwork」
削除したくない文字があります。
簡単にするために:
regexp_replace('abc$wanto&toremove#special~chars', '[^[:alpha:]]')
Charを最も近い特殊なcharに置き換えたい場合は、次のようなことができます:
select
translate(
lower( name ), ' ''àáâãäéèëêíìïîóòõöôúùüûçÇ', '--aaaaaeeeeiiiiooooouuuucc'
) as new_name,
name
from cities;
する必要があります:
regexp_replace('abc$wanto&toremove#special~chars', '[^a-zA-Z]+', '')