2

列に 200 以上の単語のリストがあります。その言葉の後に来るものは何でも置き換えたい。

Eg: E Graham St       DDS  ==> E Graham St
    Trent Ave      4DF ===> Trent Ave

単語の例は、AVE、ST ....その文字列を関数に渡し、関数内で正規表現を置き換えることを考えています。

4

1 に答える 1

4

次のようなものを使用できます:

SQL> select regexp_replace(str, '^((.*? ave[ \.])|(.*? st[ \.])|(.*? rd[ \.])|(.*? close[ \.])).*$', '\1', 1, 1, 'i')
  2   from (select 'E Graham St       DDS' str from dual
  3         union all select 'Trent Ave      4DF' from dual
  4         union all select 'Foo bar Rd. asd' from dual
  5         union all select 'E Graham St St DDS' from dual);

REGEXP_REPLACE(STR,'^((.*?AVE[\.])|(.*?ST[\.])|(.*?RD[\.])|(.*?CLOSE[\.])).*$','
--------------------------------------------------------------------------------
E Graham St
Trent Ave
Foo bar Rd.
E Graham St
于 2013-03-19T16:47:45.863 に答える