2013-10-22 26 views
42

Tôi muốn chia chuỗi bằng khoảng trắng, ,' bằng một lệnh ruby ​​đơn.Tách chuỗi bằng nhiều dấu phân cách

  1. word.split sẽ chia cho khoảng trắng;

  2. word.split(",") sẽ chia cho ,;

  3. word.split("\'") sẽ chia cho '.

Làm thế nào để thực hiện cả ba cùng một lúc?

+0

Karan, bạn đã có thể nhận thấy bạn không cần phải thoát khỏi dấu nháy đơn chừng nào nó giữa dấu ngoặc kép. –

Trả lời

89
word = "Now is the,time for'all good people" 
word.split(/[\s,']/) 
=> ["Now", "is", "the", "time", "for", "all", "good", "people"] 
+0

Ngắn gọn và hiệu quả, +1 :) – zx81

+5

Xin chào, mọi người, cảm ơn tất cả những người nổi dậy trong hai năm qua, nhưng xin đừng bỏ qua câu trả lời của @ oldergod. –

30

Regex.

"a,b'c d".split /\s|'|,/ 
# => ["a", "b", "c", "d"] 
+2

Tôi đã bỏ lỡ câu trả lời của bạn trước đó. Tôi thích nó để khai thác bởi vì nó đọc tốt hơn (sử dụng 'hoặc'). Bạn quên bao gồm '| \ s', có thể vì bạn đã đọc sai câu hỏi. –

+1

@CarySwoveland Bạn nói đúng, cảm ơn bạn! – oldergod

3
x = "one,two, three four" 

new_array = x.gsub(/,|'/, " ").split 
+0

Tôi thích cách tiếp cận của bạn với nó và có nó cung cấp cho các giải pháp chính xác. – Rishav

16

Dưới đây là một khác:

word = "Now is the,time for'all good people" 
word.scan(/\w+/) 
# => ["Now", "is", "the", "time", "for", "all", "good", "people"] 
Các vấn đề liên quan