使用 regex_replace 删除特殊字符时如何不替换“]”
how not to replace "]" when using regex_replace for removing special characters
我正在尝试从 table 的评论栏中删除一些特殊字符。我使用了下面的语句,但它似乎删除了 ']'
,即使它在 ^[not]
列表中。
UPDATE TEST
set comments=REGEXP_REPLACE(
comments,
'[^[a-z,A-Z,0-9,[:space:],''&'','':'',''/'',''.'',''?'',''!'','']'']]*',
' '
);
table 数据包含以下内容:
[SYSTEM]:Do you have it in stock? 😊
我的要求是:
[SYSTEM]:Do you have it in stock?
你的正则表达式有两个错误:
- 不要将字符放在引号中,也不要用逗号分隔。
- 删除内部方括号。
并将右方括号放在列表的第一位,就在初始抑扬符之后。固定正则表达式:
UPDATE TEST set comments=REGEXP_REPLACE(comments,'[^]a-zA-Z0-9[:space:]&:/.?!]*',' ');
我的尝试,我只是删除了逗号,将 "accepted" 字符放在初始 "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 .
我正在尝试从 table 的评论栏中删除一些特殊字符。我使用了下面的语句,但它似乎删除了 ']'
,即使它在 ^[not]
列表中。
UPDATE TEST
set comments=REGEXP_REPLACE(
comments,
'[^[a-z,A-Z,0-9,[:space:],''&'','':'',''/'',''.'',''?'',''!'','']'']]*',
' '
);
table 数据包含以下内容:
[SYSTEM]:Do you have it in stock? 😊
我的要求是:
[SYSTEM]:Do you have it in stock?
你的正则表达式有两个错误:
- 不要将字符放在引号中,也不要用逗号分隔。
- 删除内部方括号。
并将右方括号放在列表的第一位,就在初始抑扬符之后。固定正则表达式:
UPDATE TEST set comments=REGEXP_REPLACE(comments,'[^]a-zA-Z0-9[:space:]&:/.?!]*',' ');
我的尝试,我只是删除了逗号,将 "accepted" 字符放在初始 "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 .