ham*_*mdi 8 regex sql oracle character
我在oracle论坛网站上找到了一个例子:
输入字符串: a, b, c (x, y, z), a, (xx, yy, zz), x,
WITH t AS (SELECT 'a, b, c (x, y, z), a, (xx, yy, zz), x,' col1
FROM dual)
SELECT t.col1
, REGEXP_REPLACE(t.col1, '(\(.*?\))|,', '\1') new_col
FROM t
Run Code Online (Sandbox Code Playgroud)
输出: a b c (x, y, z) a (xx, yy, zz) x
但我想反过来说.只需,从内部移除此角色()并留在外面.
输出: a, b, c (x y z), a, (xx yy zz), x,
这适用于括号中参数长度恒定的情况。
REGEXP_REPLACE(t.col1, '(\(.*?),(.*?),(.*?\))', '\1\2\3') new_col
Run Code Online (Sandbox Code Playgroud)
更新受到@Kobi评论的启发:
这个正则表达式删除了第一个,可选的第二个和可选的第三个,它,之间()
可以扩展到9个(我有一本书指出 \1 ... \500 应该是可能的,但只有 \1 .. .\9 有效)
REGEXP_REPLACE(t.col1, '\(([^,]*),([^,]*),?([^,]*),?([^,]*)\)', '(\1\2\3\4)') new_col
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5198 次 |
| 最近记录: |