0

テーブルのコメント列からいくつかの特殊文字を削除しようとしています。']'以下のステートメントを使用しましたが、リストにあるにもかかわらず削除されているよう^[not]です。

UPDATE TEST 
set comments=REGEXP_REPLACE(
               comments,
               '[^[a-z,A-Z,0-9,[:space:],''&'','':'',''/'',''.'',''?'',''!'','']'']]*',
               ' '
               );

テーブル データには次のものが含まれます。

[SYSTEM]:Do you have it in stock? 😊

私の要件は次のとおりです。

[SYSTEM]:Do you have it in stock?
4

2 に答える 2

1

正規表現に 2 つの間違いがあります。

  1. 文字を引用符で囲んだり、カンマで区切ったりしないでください。
  2. 内側の角かっこを削除します。

そして、最初のサーカムフレックスの直後に、リストの最初に閉じ角括弧を配置します。修正された正規表現:

UPDATE TEST set comments=REGEXP_REPLACE(comments,'[^]a-zA-Z0-9[:space:]&:/.?!]*',' ');
于 2016-05-17T06:24:22.363 に答える
0

私の試みは、カンマを削除し、最初の「not」(括弧なし)の後に「受け入れられた」文字を入れただけです。特殊なケースは括弧です: https://dba.stackexchange.com/a/109294/6228

select REGEXP_REPLACE(
         '[ION] are varză murată.',
         '[^][a-zA-Z0-9[:space:]&:/,.?!]+',
         ' ') 
from dual;

Result:
[ION] are varz  murat .
于 2016-05-17T07:14:29.957 に答える