我在数据框中有一个字符串字段,类似于:
"Young Adult – 8-9""
其中内部单曲“是我想要替换的东西:
"Young Adult - 8-9"
我该怎么做?我试图用双反斜杠逃脱:
gsub("\\"", "", string)
但出现此错误:错误:“gsub(”\“”,“”
中的意外字符串常量答案 0 :(得分:10)
您不需要在正则表达式中转义双引号。只需使用"\""
或'"'
即可匹配单个双引号。
s = "Young Adult – 8-9\""
s
[1] "Young Adult – 8-9\""
gsub("\"", "", s)
[1] "Young Adult – 8-9"
gsub('"', "", s)
[1] "Young Adult – 8-9"
注意:由于您要删除一些文字文本,您甚至不需要正则表达式,使用fixed=TRUE
参数来加速操作:
gsub('"', "", s, fixed=TRUE)
答案 1 :(得分:1)
当您在 gsub
文件中保存带有 “”
的 .R script
时,“”
将保存为 "
。
gsub("[“”]", "", s) # Doesn't work when you save this piece of code in a script
解决办法是先规范化双引号
x <- proustr::pr_normalize_punc(your_data_frame, your_column_name) %>%
mutate(your_column_name = gsub('\"','', your_column_name))
您可以猜到 proustr::pr_normalize_punc
将所有 “”
转换为 \"