我正在尝试使用 gsub 替换"?"和"."空白空间。
gsub(".", "")我意识到这是和之间的区别gsub(/./, ""),但我不知道它是什么。有人可以解释吗?
此外,gsub("?","")似乎工作,并gsub(/?/,"")没有工作。我们怎样才能gsub(/?/,"")工作?
我正在尝试使用 gsub 替换"?"和"."空白空间。
gsub(".", "")我意识到这是和之间的区别gsub(/./, ""),但我不知道它是什么。有人可以解释吗?
此外,gsub("?","")似乎工作,并gsub(/?/,"")没有工作。我们怎样才能gsub(/?/,"")工作?
gsub("?", "")匹配文字?,而gsub(/?/, "")使用正则表达式来查找匹配项。在正则表达式中,这?意味着前一个字符可以出现 0 次或 1 次。为了匹配文字?,您必须将其转义:
gsub(/\?/, "")
另请参阅有关gsub的 ruby 文档
最后,正如上面提到的,/reg/当"str"只表示一个字符串时,它表示正则表达式。您的目标是从字符串中删除?和。.正则表达式将完成这项工作:
gsub(/[?.]/, '')
您可以在此处阅读有关 ruby regexp的更多信息。在我的示例/[abc]/中将匹配单个字符aorb或c。
前者是从字面上找到“?” 字符并替换它们,而后者是查找给定字符的 0 或 1 的出现。?对于正则表达式具有特殊含义,您可以使用/.