r - 在 R 中删除文本文件中的特殊字符
问题描述
我在 R 中使用一个文本文件,并使用 readLine 函数和正则表达式从中提取单词。该文件在单词周围使用特殊字符(例如在单词之前和之后使用#sings 来表示它是粗体或在单词之前和之后使用@ 来表示它应该是斜体)来表示特殊含义,这会弄乱我的正则表达式。
到目前为止,这是我的 r 代码,它删除了所有空行,然后将我的文本文件组合成一个向量:
book<-readLines("/Users/Desktop/SAMPLE .txt",encoding="UTF-8")
#remove all empty lines
empty_lines = grepl('^\\s*$', book)
book = book[! empty_lines]
#combine book into one variable
xBook = paste(book, collapse = '')
#remove extra white spaces for a single text of the entire book
updated<-trimws(gsub("\\s+"," ",xBook))
当我运行更新时,我看到存储在变量中的整个文件更新但带有特殊字符:
更新 [1] “这是一个公认的事实,一个拥有好运的 #single# 男人一定想要一个妻子。然而,这种@man@ 的感受或观点可能鲜为人知。第一次进入一个社区,这个事实在周围家庭的脑海中已经根深蒂固,@that@ 他被认为是#their#女儿中的某个或其他的合法财产。
如何从更新变量中的单词中删除所有前导或尾随 # 或 @?
我想要的输出只是纯文本,没有指示应该加粗或斜体的单词:
更新 [1] “这是一个普遍公认的事实,一个拥有好运的单身男人一定需要一个妻子。然而,这样的男人在他第一次进入社区时的感受或观点可能鲜为人知,这个事实在周围家庭的脑海中根深蒂固,以至于他被认为是他们的某个或其他女儿的合法财产。
解决方案
gsub("[@#]([a-zA-Z]+)[@#]", "\\1", x)
推荐阅读
- php - 无法刷新 Quickbooks API 中的访问令牌。检查 TLS 1.2 的 cURL 版本时出错
- speech-recognition - Google 针对 Google Meet 的新降噪器功能 (https://www.youtube.com/watch?v=1q61B8zdSV0)
- coq - 在什么情况下可以判定平等的平等?
- python - 以最正确的方式继承类实例属性
- python - OpenCV 错误:(addWeighted)操作既不是“数组操作数组”
- email - 用于复制新电子邮件主题的 AppleScript 代码
- spring-boot - Springboot 2.3.1.RELEASE 和 Cassandra 连接问题
- html - 包含图像的响应表
- java - 复制一些文本时如何获取复制的文本?
- java - Android Studio 4.0:构建失败 | 请检查您是否安装了 Windows 通用 C 运行时