允许使用字母数字和#,替换逗号并在空格上分隔

时间:2011-04-06 02:38:28

标签: ruby regex

我想在正则表达式中执行以下操作:

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]

4 个答案:

答案 0 :(得分:4)

这是一种简单的方法:

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

基本上,它正在寻找包含大写和小写az的字符集,加上09和{{1} },并返回那些。因为逗号和空格不匹配,所以会忽略它们。

您没有使用#显示示例,但我添加了它,因为您这么说。

答案 1 :(得分:0)

您可以使用正则表达式执行1和2,但不能使用3和4。

sentence = "cool, fun, house234"

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

=> [ "cool", "fun", "house234" ]

答案 2 :(得分:0)

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

您可以将“,”传递给split方法以在逗号上拆分,无需将其转换为空格。

答案 3 :(得分:0)

可能你想要的是这个吗?

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