Tôi muốn chia một chuỗi trong C# giống nhưsplit chuỗi dựa trên regexp
a: b: "c: d"
để các mảng kết quả sẽ có
Array [0 ] = "a"
Array [1] = "b"
Array [2] = "c: d"
gì regexp tôi sử dụng để đạt được kết quả yêu cầu.
Nhiều Cảm ơn
Tôi muốn chia một chuỗi trong C# giống nhưsplit chuỗi dựa trên regexp
a: b: "c: d"
để các mảng kết quả sẽ có
Array [0 ] = "a"
Array [1] = "b"
Array [2] = "c: d"
gì regexp tôi sử dụng để đạt được kết quả yêu cầu.
Nhiều Cảm ơn
Nếu ruột delimiter được phân cách bằng khoảng trắng, bạn có thể sử dụng \ s để phù hợp với khoảng trắng:
string example = "a : b : \"c:d\"";
string[] splits = Regex.Split(example, @"\s:\s");
Điều này dường như làm việc trong RegexBuddy cho tôi
(\w+)\s:\s(\w+)\s:\s"(\w+:\w+)"
đầu vào
a: b: "c: d"
phù hợp nhóm
- một
- b
- c: d
Như luôn luôn cẩn thận và hiểu những gì các regex thực hiện. Đừng chỉ sao chép một cách mù quáng. Điều này khớp với các ký tự từ \w
, dấu cách \s
, v.v. Hãy xem xét dữ liệu nào mà dữ liệu đầu vào của bạn sẽ thực sự có trong đó!
Tuyệt vời, bây giờ anh có * hai * vấn đề; p –
tôi có 99 vấn đề nhưng một regex ain' tấn. –
Tôi nghĩ rằng nên có nhiều giải pháp rộng hơn với | ..smth như: (\ w +) \ s: |: \ s "(\ w +: \ w +)" ..hoặc kiểu này – 0x49D1
Rất tiếc, tôi đoán phần này sẽ giữ dấu ngoặc kép quanh "c: d" ... –
Cảm ơn Andy, điều đó sẽ giúp ích rất nhiều. –