我正在尝试使用gsub将"?"
和"."
替换为空格。
我意识到这是gsub(".", "")
和gsub(/./, "")
之间的区别,但我不知道它是什么。有人可以解释一下吗?
此外,gsub("?","")
似乎有效,gsub(/?/,"")
不起作用。
我们如何让gsub(/?/,"")
工作?
答案 0 :(得分:3)
gsub("?", "")
与文字?
匹配,而gsub(/?/, "")
使用regular expressions查找匹配项。在正则表达式中,?
表示前一个字符可以存在0或1次。为了匹配文字?
,您必须转义它:
gsub(/\?/, "")
另请参阅有关gsub
的ruby文档答案 1 :(得分:2)
最后,如上所述/reg/
表示"str"
仅表示字符串时的正则表达式。您的目标是从字符串中删除?
和.
。 Regexp将完成这项工作:
gsub(/[?.]/, '')
您可以阅读有关ruby regexp here的更多信息。在我的示例中,/[abc]/
将匹配单个字符a
或b
或c
。
答案 2 :(得分:1)
前者是字面上找“?”字符并替换它们,而后者是查找给定字符的0或1的出现。 ?
对正则表达式具有特殊含义,您可以使用/
分隔。