2012-02-21 33 views
7

Tôi có các chuỗi như thế này 'some-dasd\dasd-dasdas\dasdas-dasd-das\dsad'. Tôi cần chia chuỗi thành mảng theo hai ký hiệu khác nhau '\''-', vì vậy tôi muốn lấy mảng ['some', 'dasd', 'dasd', 'dasdas', 'dasdas', 'dasd', 'das' ,'dsad'].Chuỗi chia cho hai dấu phân cách khác nhau

Cách tốt nhất để làm điều đó là gì?

Trả lời

14
"ome-dasd\dasd-dasdas\dasdas-dasd-das\dsad".split(/\\|-/) 

nên thực hiện thủ thuật.

+0

@Russell cảm ơn bạn. Nhưng nó không phải là tốt nhất;) – lucapette

+1

Nhưng điều này không làm việc cho trường hợp các dấu phân tách nằm cạnh nhau \ - cung cấp cho bạn một số phần tử trống. –

11

Bạn có thể chia chuỗi sử dụng regexp:

mystring.split(/[-\\]/) 
+0

Một chút tốt hơn của tôi ... – lucapette

+0

@ lucapette bạn sẽ phải tha thứ cho sự thiếu hiểu biết tương đối của tôi về regexp - cả câu trả lời này và của bạn dường như tương đương với tôi? Tại sao một người sẽ tốt hơn người kia? – Russell

+3

@Russel Chúng hoàn toàn tương đương về mặt * đối sánh * nhưng cái này ngắn gọn hơn và dễ bảo trì hơn. Ví dụ giả sử bạn muốn thêm '%'. Cái này sẽ trở thành '[- \\%]', của tôi sẽ trở thành '\\ | - |%'. Và có lẽ đó là một vấn đề của hương vị quá :) – lucapette

Các vấn đề liên quan