Tôi bị mắc kẹt với regex này.Chuỗi phân tách regex Java bằng dấu phẩy nhưng bỏ qua dấu ngoặc kép và dấu ngoặc đơn
Vì vậy, tôi có đầu vào như:
- "thiết bị cẩu, (đối tượng vật lý)" (X1, x2, x4), không phải là "Đây là trạng thái y tá nghiên cứu (tìm kiếm)", EntirePatellaBodyStructure (X1, X8), "Besnoitia wallacei (sinh vật)", "Catatropis (sinh vật)" (X1, x2, x4), không phải IntracerebralRouteQualifierValue, "Diospyros virginiana (sinh vật)" (X1, x2, x4), không SuturingOfHandProcedure (X1)
và cuối cùng tôi muốn nhận được là:
-
.210
- "thiết bị cẩu, (đối tượng vật lý)" (X1, x2, x4)
- không "Đây là trạng thái y tá nghiên cứu (phát hiện)"
- EntirePatellaBodyStructure (X1, X8)
- "Besnoitia wallacei (vật)"
- "Catatropis (vật)" (X1, x2, x4)
- không IntracerebralRouteQualifierValue
- "Diospyros virginiana (vật)" (X1, x2, x4)
- không SuturingOfHandProcedure (X1)
Tôi đã thử regex
(\'[^\']*\')|(\"[^\"]*\")|([^,]+)|\\s*,\\s*
Nó hoạt động nếu tôi không có một dấu phẩy bên trong dấu ngoặc đơn.
bất cứ điều gì đặc biệt về 'not' và '()'! – Anirudha
Có vẻ như những gì bạn muốn ở đây là một trình phân tích cú pháp chính thức và không phải regexes. – fge
đây thực sự là lệnh prolog, nhưng trong trường hợp này "not" không có hiệu lực. Cũng trong ngoặc đơn là một biến, nhưng nó có thể trống. –