Tôi có chuỗi java trông như thế này;Java Regex tách chuỗi giữa dấu phân cách và giữ dấu phân tách
(fname:jon)(lname:doe)(guaranteer: Sam (W) Willis)(age:35)(addr:1 Turnpike Plaza)(favcolor:blue)
Và tôi muốn chia Chuỗi này khỏi dấu phân tách (fname:jon)<here>(lname:doe)
.
tôi đã cố gắng tách thông qua regex \)\(
nhưng nó chỉ phá vỡ mã của tôi
arr = s.split("\\)\\(");
for (String a: arr) System.out.println(a);
Output
(fname:jon
lname:doe
guaranteer: Sam (W) Willis
age:35
addr:1 Turnpike Plaza
favcolor:blue)
Tôi cũng nhìn câu hỏi này: How to split a string, but also keep the delimiters?, nhưng nó đã không giúp bởi vì trong trường hợp của tôi , Tôi cũng muốn giữ dấu phân cách )(
và phân tách dấu phân cách đồng đều, tức là, dấu ngoặc đầu tiên phải đi đến kết quả đầu tiên và kết quả thứ hai đến thứ hai.
Các regex mà tôi sử dụng là s.split("(?<=\\)\\()")
và nó đã cho kết quả:
(fname:jon)(
lname:doe)(
guaranteer: Sam (W) Willis)(
age:35)(
addr:1 Turnpike Plaza)(
favcolor:blue)
Đây là đầu ra mong muốn của tôi:
(fname:jon)
(lname:doe)
(guaranteer: Sam (W) Willis)
(age:35)
(addr:1 Turnpike Plaza)
(favcolor:blue)
Hãy thử ') ' –
@Wiktor Stribiżew Tôi đã đặc biệt chỉ ra lý do tại sao câu trả lời mà không giúp trong trường hợp của tôi. Bạn có thể cho tôi biết tại sao bản sao này lại không? – Cupid
Câu trả lời tổng quát tất cả các trường hợp đó là http://stackoverflow.com/a/2848147/3832970. Thứ ba từ phía dưới là trường hợp của bạn. –