2011-04-06 112 views
0

分開我想要做的正則表達式如下:允許字母,數字和#,替換逗號和空間

1. allow alphanumeric characters 
2. allow the # character, and comma ',' 
3. replace the comma ',' with a space 
4. split on space 


sentence = "cool, fun, house234" 

>> [cool, fun, house234] 
+2

在您的示例中,逗號用作分割點,不會被空格替換。這個問題可能沒有準確的措詞。另外,你應該在''cool''的結果中加雙引號,以表明'cool'不是局部變量,也不是整個括號內的東西就是結果字符串。 – sawa 2011-04-06 02:40:40

+0

'allow'#'和',''是什麼意思?應該使用既不是字母數字,'#',也不是''的字符應該做什麼?如果''允許','什麼意思'變成空格結尾,最終用作分隔符,而'#'不是? – sawa 2011-04-06 02:51:01

+0

我想分割空間,有些人可能會輸入','認爲它是一個分離器,所以我想刪除這些字符或替換一個空格。 – Blankman 2011-04-06 02:56:45

回答

4

這是一個簡單的方法來做到這一點:

sentence.scan(/[a-z0-9#]+/i) #=> ["cool", "fun", "house234"] 

基本上它在尋找包含az大寫和小寫字符運行,加上09,並#,並返回那些。由於逗號和空格不匹配,因此會被忽略。

你沒有使用#顯示一個例子,但我補充說'因爲你這麼說。

0

你可以做1和2用正則表達式,而不是3和4

sentence = "cool, fun, house234" 

sentence.gsub(',', ' ').split if sentence =~ /[0-9#,]/ 

=> [ "cool", "fun", "house234" ] 
0
"cool, fun, house234".split(",") 
=> ["cool", " fun", " house234"] 

您只需通過「」入拼合方法拆分的逗號,沒有必要將其轉換爲空間。

0

也許,你想要的是這樣嗎?

string.gsub(/[^\w, #]/, '').split(/ +,? +/) 
相關問題