2

後で処理するために、もともとユーザー入力だった住所カタログをスクラブしようとしています。数字と特殊文字を削除すると、次のような文字列ができます。

ST SOMETHING SOMEWHERE H BL D S

だから、ST通り、家などを表しHます..ここで超正確にしようとはしていないので、今のところ3文字未満のものを削除するだけで十分だと考えましたが、Oracleで正しい正規表現を見つけることができないようです. 試しました:

SELECT
    regexp_replace('ST SOMETHING SOMEWHERE H BL D S','[\ ^]\w{1,3}[\ $]', ' ')
FROM dual;

これにより、次の結果が得られます。

ST SOMETHING SOMEWHERE BL S

そして、私は私が持っていたらいいのに

SOMETHING SOMEWHERE

誰か私に手を貸してくれませんか?

(私はオラクル11gを使用しています)

4

1 に答える 1

0

試す

SELECT
  regexp_replace(
      '<raw string>'
     ,'(^|[[:space:]])([^[:space:]]{1,3}[[:space:]]+)*[^[:space:]]{1,3}([[:space:]]|$)'
     , ' '
  )
FROM dual;

あなたのニーズに合うことを願っています, よろしく, カルテン

于 2012-12-19T13:58:11.117 に答える