1

エクスポート ツールに問題があるために無効な文字でいっぱいのメモ フィールドを含むデータを、Excel スプレッドシート (*.xls) からインポートしています。

Character reference " " is an invalid XML character. という文字が XML でエラーになります。

PostgreSQL の性別記号、ブロック、記号などのウィング文字を置き換えるにはどうすればよいですか?

これらの文字をコピーして replace ステートメントなどに貼り付けようとしましたが、無駄でした。正規表現を使用して英数字以外または「-=+」タイプの文字を置き換える方法はありますか? どんな助けでも大歓迎です。

4

1 に答える 1

2
SELECT regexp_replace('123xabcABCxöäüxÖÄÜx¡‘’xæćčx=+-x"§$%&/()x'
                     ,'[^a-zA-Z0-9=+-]','_','g')

結果:

123xabcABCx___x___x___x___x=+-x________x

^キャラクタークラスの先頭はそれを[^a-zA-Z0-9=+-]否定します。「次のリストにないすべての文字」をお読みください。

-キャラクタークラスの最後(または最初)にキャラクターを配置するように注意してください。そうしないと、のような特別な意味になりa-zます。

'g'「グローバル」の4番目のパラメーターに注意してください。これがないと、最初の一致のみが置き換えられます。

öäüまた、のような文字がどのように置き換えられるかにも注意してください。あなたはそれを望むかもしれないし、望まないかもしれません...したがって、あなたは関数unaccentを提供する拡張機能に興味があるかもしれませんunaccent()

unaccent()関数は、指定された文字列からアクセント(発音区別符号)を削除します。

マニュアルのPostgreSQL正規表現の詳細はこちら

于 2012-07-20T20:01:07.670 に答える