Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从字符串中删除不需要的文本_R_Regex_Rvest - Fatal编程技术网

R 从字符串中删除不需要的文本

R 从字符串中删除不需要的文本,r,regex,rvest,R,Regex,Rvest,我有一个字符串“yada yada.ussible text here.googletag.cmd.push(function(){googletag.display('div-gpt-ad-447281037690072557-2');});这里有有用的文本.yada yada”。我想删除字符串“googletag.cmd.push(function(){googletag.display('div-gpt-ad-447281037690072557-2');})”,但我不能 我尝试使用“^(

我有一个字符串“yada yada.ussible text here.googletag.cmd.push(function(){googletag.display('div-gpt-ad-447281037690072557-2');});这里有有用的文本.yada yada”。我想删除字符串“googletag.cmd.push(function(){googletag.display('div-gpt-ad-447281037690072557-2');})”,但我不能

我尝试使用“^(google)};”、“^google}”);”选择不需要的字符串,但没有效果。即使是“^google”或“^google*”也不能做任何事情,但“google”可以正常工作。我使用了gsub和str_remove函数,但我的选择器不起作用

如何删除不需要的字符串?我搜索了正则表达式,将^添加到选择器中会使代码停止工作。我错过了什么?

这应该够了

library(stringr)

x <- "yada yada.useful text here. googletag.cmd.push(function() { googletag.display('div-gpt-ad-447281037690072557-2'); });useful text here. yada yada"

x %>% str_remove("googletag.*\\}\\)")
库(stringr)
x%str_删除(“谷歌标签。*\\\\\\”)
解释

正则表达式查找“googletag”(不需要的字符串从这里开始)

*表示任意数量的字符

\\}\\)直到我们找到})


双反斜杠是“R俚语”,其他正则表达式通常只使用一个反斜杠。

^
断言字符串的开头。您可以使用
\bgoogletag.*?}\)^google*}\其中,
*
将重复一个
e
字符0次或更多次,例如匹配
googl})
google})
googleee})等等。是的,忘记了“*”之前的“.”。谢谢我需要一副新玻璃为什么“谷歌标签”能用而“谷歌*”不能?我真的不知道。试试
gsub(“googletag.\\\\\\\\\\\\W”、“,”x)
:这也会删除不需要的字符串末尾的标点和空格
\\W
(大写字母W)匹配任何*非字母数字的内容。不,仔细看:它是
谷歌标签。*
再加上一点,而不是
谷歌标签*
——您缺少匹配任何内容的
,而
*
是一个量化表达式,可以匹配零次或多次。所以,
*
说“匹配任何东西任意次数”。是的,忘记了“*”之前的“.”。谢谢