允许字母,数字和#,替换逗号和空间
问题描述:
分开我想要做的正则表达式如下:允许字母,数字和#,替换逗号和空间
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]
答
这是一个简单的方法来做到这一点:
sentence.scan(/[a-z0-9#]+/i) #=> ["cool", "fun", "house234"]
基本上它在寻找包含a
到z
大写和小写字符运行,加上0
到9
,并#
,并返回那些。由于逗号和空格不匹配,因此会被忽略。
你没有使用#
显示一个例子,但我补充说'因为你这么说。
答
你可以做1和2用正则表达式,而不是3和4
sentence = "cool, fun, house234"
sentence.gsub(',', ' ').split if sentence =~ /[0-9#,]/
=> [ "cool", "fun", "house234" ]
答
"cool, fun, house234".split(",")
=> ["cool", " fun", " house234"]
您只需通过“”入拼合方法拆分的逗号,没有必要将其转换为空间。
答
也许,你想要的是这样吗?
string.gsub(/[^\w, #]/, '').split(/ +,? +/)
在您的示例中,逗号用作分割点,不会被空格替换。这个问题可能没有准确的措词。另外,你应该在''cool''的结果中加双引号,以表明'cool'不是局部变量,也不是整个括号内的东西就是结果字符串。 – sawa 2011-04-06 02:40:40
'allow'#'和',''是什么意思?应该使用既不是字母数字,'#',也不是''的字符应该做什么?如果''允许','什么意思'变成空格结尾,最终用作分隔符,而'#'不是? – sawa 2011-04-06 02:51:01
我想分割空间,有些人可能会输入','认为它是一个分离器,所以我想删除这些字符或替换一个空格。 – Blankman 2011-04-06 02:56:45