在R中如何搜索文本文件内包含转义字符的目标字符串
问题描述
我在R中通过以下代码写入并读取文本文件:
full_name <- '"Margie" Smith' write(full_name, "m.txt") tt <- readLines("m.txt")
返回的tt结果看起来m.txt中的内容是经过转义的,请问我应该如何在m.txt中搜索"Margie" Smith这个字符串?
解决方案
你看到的转义只是R控制台打印字符串时的展示规则,m.txt文件中实际存储的就是未经额外转义的"Margie" Smith字符串,直接按目标内容搜索即可,分两种常用场景:
1. R环境内对读入的tt变量搜索
直接用常规字符串匹配函数即可,两种写法都可以正常匹配:
- 用单引号包裹目标字符串,内部的双引号不需要转义:
# 返回值为TRUE即代表匹配到目标内容 grepl('"Margie" Smith', tt) - 用双引号包裹目标字符串,内部的双引号需要加反斜杠转义:
grepl("\"Margie\" Smith", tt)
你可以执行cat(tt, "\n")打印tt的实际内容,控制台会直接输出不带转义符的"Margie" Smith,确认变量值和你的搜索目标完全一致。
2. 直接搜索本地存储的m.txt文件
如果是在操作系统中直接检索文件内容,直接输入目标字符串"Margie" Smith即可命中,不需要添加任何转义字符。
内容的提问来源于stack exchange,提问作者Charles Stangor
相关产品推荐
相关产品推荐

