2012-04-30 21 views
7

Tôi có chuỗi nhưChia tại đơn tách xảy ra

A_B_C_D 
A_B___C_D 

nơi ___ có thể là bất cứ nơi nào trong chuỗi.

Cách dễ nhất để tách chúng ở bất kỳ _ nào đơn lẻ nhưng không phải là ___?

+2

vì vậy những gì không kết quả giống như khi nó chứa '___ '? – Joseph

+0

Khi các phím được tạo, điều này là không thể. –

Trả lời

8
>>> "A_B_C_D".match(/(?:[^_]|_{2,})+/g) 
["A", "B", "C", "D"] 

>>> "A_B___C_D".match(/(?:[^_]|_{2,})+/g) 
["A", "B___C", "D"] 

Thay vì tìm dấu phân cách, chúng tôi tự tìm thấy các thành phần. Lưu ý rằng các chuỗi phải không phải là _ (bởi vì dấu phân tách là _) hoặc nhiều hơn một _ s. Vì vậy, các regex để phù hợp với họ chỉ đơn giản là như thế này.

Lưu ý rằng regex này bỏ qua các chuỗi rỗng nếu đầu vào bắt đầu hoặc kết thúc với _ (ví dụ "_a_" sẽ chỉ trả lại ["a"].)

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