我正在尝试逃避并在字符串中找到特殊字符。目前我正在使用替换功能单独搜索任何特殊字符并在其前面添加\。如下图所示。
directory := replace(directory, ' ', '\ ');
directory := replace(directory, '(', '\(');
directory := replace(directory, ')', '\)');
directory := replace(directory, '''', ''\'');
etc
我想知道的是,是否有更简洁的方法来执行此操作?
非常感谢任何帮助或建议。
答案 0 :(得分:3)
试试这个:
SELECT
regexp_replace('my ''string'' with special (characters)', '([() ''])', '\\\1')
FROM
dual;
输出:
my\ \'string\'\ with\ special\ \(characters\)
答案 1 :(得分:0)
取代什么:
SELECT REGEXP_REPLACE(str, '\w') AS output
FROM
(
SELECT 'perl -pe ''$_ .= "\n" unless /^$/''' AS str
FROM DUAL
);
结果:
- '$ .= "\" /^$/'
当它被删除时:
SELECT REGEXP_REPLACE(str, '\W') AS output
FROM
(
SELECT 'perl -pe ''$_ .= "\n" unless /^$/''' AS str
FROM DUAL
);
结果:
perlpe_nunless