R 从字符串中删除不需要的文本
我有一个字符串“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函数,但我的选择器不起作用 如何删除不需要的字符串?我搜索了正则表达式,将^添加到选择器中会使代码停止工作。我错过了什么?这应该够了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');})”,但我不能 我尝试使用“^(
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.*?}\)但是我认为像这样匹配javascript代码很容易出错。我还使用了正则表达式“^google*}”);,由于某些原因,*即使在我编辑它时也不会出现,它本身不是一个有效的表达式,但是如果您转义括号,则模式是^google*}\代码>其中,*
将重复一个e
字符0次或更多次,例如匹配googl})代码>,google})代码>和googleee})代码>等等。是的,忘记了“*”之前的“.”。谢谢我需要一副新玻璃为什么“谷歌标签”能用而“谷歌*”不能?我真的不知道。试试gsub(“googletag.\\\\\\\\\\\\W”、“,”x)
:这也会删除不需要的字符串末尾的标点和空格\\W
(大写字母W)匹配任何*非字母数字的内容。不,仔细看:它是谷歌标签。*
再加上一点,而不是谷歌标签*
——您缺少匹配任何内容的
,而*
是一个量化表达式,可以匹配零次或多次。所以,*
说“匹配任何东西任意次数”。是的,忘记了“*”之前的“.”。谢谢