我正在尝试从短语中删除数字。我写的是:
phrase = 'hello 234234 word'
words = phrase.split(/\W/)
words.reject!{ |w| w.match(/^\d+$/) }
words.join(' ')
或者,单行:
phrase = phrase.split(/\W/).reject{ |w| w.match(/^\d+$/) }.join(' ')
示例:
"hello 123 word" should end "hello word"
"hello 123word" should end "hello 123word"
"hello 123.word" should end "hello word"
此解决方案的问题在于它也删除了分隔符这个词。 (见上面的第3个例子)
有没有更好,更简洁的方法来同时保存单词分隔符?
答案 0 :(得分:2)
这个正则表达式完成了这项工作:
phrase.gsub!(/\b\d+\b/, "")
这个gsub
摆脱了数字词。
答案 1 :(得分:0)
我会这样做:
phrase.gsub!(/ \d+ /, " ")
需要使用括号来防止ruby认为您正在尝试继续行。