Regex SQL中的正则表达式
我必须创建一个正则表达式,其中我需要将ORACLE中动态查询的所有单词替换为NULL,但以@字符开头的单词除外。例如:Regex SQL中的正则表达式,regex,oracle,plsql,oracle10g,regexp-replace,Regex,Oracle,Plsql,Oracle10g,Regexp Replace,我必须创建一个正则表达式,其中我需要将ORACLE中动态查询的所有单词替换为NULL,但以@字符开头的单词除外。例如: select REGEXP_REPLACE('SELECT @param1, column2, column3, @param2 FROM dual WHERE @code = code_table AND amount > @param4 + 50', '[^@]?(@[[:alnum:]]+)?', '\1') from dual; REGEXP_REPLACE
select REGEXP_REPLACE('SELECT @param1, column2, column3, @param2 FROM dual WHERE @code = code_table AND amount > @param4 + 50',
'[^@]?(@[[:alnum:]]+)?', '\1')
from dual;
REGEXP_REPLACE('SELECT@PAR
--------------------------
@param1@param2@code@param4
SQL:
使用REGEXP\u替换
DECLARE
vl_result VARCHAR2(1000);
BEGIN
vl_result := REGEXP_REPLACE('SELECT @param1, column2, column3, @param2 FROM dual WHERE @code = code_table AND amount > @param4 + 50', 'EXP_REG', '');
dbms_output.put_line(vl_result);
END;
应具有以下结果:
@param1@param2@code@param4
并尝试了几种不同的方法,但仍然不能
他们知道你是否能做到这一点??正则表达式有多严重
对于给定的示例,我正在处理PL/SQL以下工作:
select REGEXP_REPLACE('SELECT @param1, column2, column3, @param2 FROM dual WHERE @code = code_table AND amount > @param4 + 50', '.*?((@[^ ,]+)|$)', '\1') new_str
from dual;
NEW_STR
--------------------------
@param1@param2@code@param4
以下内容适用于给定示例:
select REGEXP_REPLACE('SELECT @param1, column2, column3, @param2 FROM dual WHERE @code = code_table AND amount > @param4 + 50', '.*?((@[^ ,]+)|$)', '\1') new_str
from dual;
NEW_STR
--------------------------
@param1@param2@code@param4
这也适用于您的示例:
select REGEXP_REPLACE('SELECT @param1, column2, column3, @param2 FROM dual WHERE @code = code_table AND amount > @param4 + 50',
'[^@]?(@[[:alnum:]]+)?', '\1')
from dual;
REGEXP_REPLACE('SELECT@PAR
--------------------------
@param1@param2@code@param4
PL/SQL也适用于此(当然@boneists也是如此):
这也适用于您的示例:
select REGEXP_REPLACE('SELECT @param1, column2, column3, @param2 FROM dual WHERE @code = code_table AND amount > @param4 + 50',
'[^@]?(@[[:alnum:]]+)?', '\1')
from dual;
REGEXP_REPLACE('SELECT@PAR
--------------------------
@param1@param2@code@param4
PL/SQL也适用于此(当然@boneists也是如此):
我非常感激,非常感激