我有一个n
行的文本文件,每行都是一个字符串。
我想将其导入 R 并使用正则表达式依次删除所有以http
开头的网址。
以下内容适用于交互式正则表达式检查程序(在Emacs中重新构建),但不在R中。
gsub("http:.*?[([:space:])| |\n]", "", x))
注意
这个问题和我给出的答案源于this question关于正则表达式引擎及其相互兼容性。
答案 0 :(得分:0)
我的解决方案如下:
output <- sapply(input, FUN = function(x) gsub("http\\S+\\s*", "", x))
sapply
对数据框的每一行执行 S 暗示的功能(在我的情况下)。gsub
使用正则表达式查找每个链接并将其删除,方法是将其替换为 nothing :""
正则表达式:"http\\S+\\s*"
:
input
尾随x
只是函数定义FUN
在sapply
函数中指向的输入。
我认为主要的消失(至少对我而言)是在R中使用双反斜杠。例如,使用以下正则表达式,我能够删除Emacs中的所有URL交互式正则表达式检查器(Emacs命令:M-x re-builder
),但不在R:
"http:.*?[([:space:])| |\n]"
我不确定如何做到这一点,因为以目标文本交互式测试正则表达式是很多免费online tools,但R使用它自己的正则表达式。 可以使用Perl(版本5.x)正则表达式引擎,但我的回答可以避免这种情况。
this thread中的简短讨论可能有助于解释这一切。