【发布时间】:2016-05-26 14:25:49
【问题描述】:
我似乎不了解 gsub 或 stringr。 示例:
> a<- "a book"
> gsub(" ", ".", a)
[1] "a.book"
好的。但是:
> a<-"a.book"
> gsub(".", " ", a)
[1] " "
我会预料到的
“一本书”
我将句号替换为空格。
另外:srintr:str_replace(a, ".", " ") 返回:
" .book"
和str_replace_all(a, ".", " ") 返回
" "
我可以使用stringi:stri_replace(a, " ", fixed="."):
"a book"
我只是想知道为什么 gsub(和 str_replace)没有像我预期的那样工作。它们在用另一个字符替换空格时起作用,但反之则不行。
【问题讨论】:
-
将点转义为
gsub("\\.", " ", a)。否则,它将被视为匹配所有内容的正则表达式。 -
或
gsub('.', ' ', a, fixed = TRUE) -
gsub的pattern参数的文档中的第一个单词是“包含正则表达式的字符串”,其中regular expression实际上是指向另一个主题的链接。我建议你阅读它。 -
好的,谢谢,这是有道理的。我已经使用了一些它们以及像“\ n”这样的引号作为新行。我只是不知道“。”是一个正则表达式。