Tôi tìm thấy một ví dụ tại diễn đàn oracle trang web:REGEXP_REPLACE - xóa các dấu phẩy từ chuỗi CHỈ nếu kèm theo trong() 's
Input chuỗi: 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
Output: a b c (x, y, z) a (xx, yy, zz) x
Nhưng tôi muốn làm ngược lại điều đó. Chỉ cần xóa ký tự này ,
từ bên trong ()
và vẫn ở bên ngoài.
Đầu ra: a, b, c (x y z), a, (xx yy zz), x,
bao nhiêu ', 'gì bạn mong đợi giữa'() '? –
REGEXP_REPLACE trong Oracle sử dụng hương vị POSIX ERE không có tính năng nhìn xung quanh. Thông tin này được lấy từ [ở đây] (http://www.regular-expressions.info/refflavors.html) –
Để thêm vào nhận xét của @ bw_üezi - Tôi đã xác nhận các giải pháp không được hỗ trợ trong Oracle bằng cách sử dụng 'REGEXP_REPLACE'. * Bình luận bắt buộc *: nó không giống như dữ liệu cần được làm trong cơ sở dữ liệu - đặc biệt nếu bạn định truy vấn nó. Bạn có chắc bạn không thể bình thường hóa nó? (Tôi biết bạn có thể không thể vào thời điểm này ...) – Kobi