我想在正则表达式中执行以下操作:
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]
答案 0 :(得分:4)
这是一种简单的方法:
sentence.scan(/[a-z0-9#]+/i) #=> ["cool", "fun", "house234"]
基本上,它正在寻找包含大写和小写a
到z
的字符集,加上0
到9
和{{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(/ +,? +/)