我在这里搜索了很多正则表达式的答案,但找不到解决这类问题的方法。从字符串替换字符串的部分字符串
我的数据集是维基百科链接tibble:
library(tidytext)
library(stringr)
text.raw <- "Berthold Speer was een [[Duitsland (hoofdbetekenis)|Duits]] [[architect]]."
我试图清理从链接我的文字。 此:
str_extract_all(text.raw, "[a-zA-Z\\s]+(?=\\])")
# [1] "Duits" "architect"
选择我从括号之间需要的话。
此:
str_replace_all(text.raw, "\\[\\[.*?\\]\\]", str_extract(text.raw, "[a-zA-Z\\s]+(?=\\])"))
# [1] "Berthold Speer was een Duits Duits."
作品如预期,但不完全是我所需要的。这:
str_replace_all(text.raw, "\\[\\[.*?\\]\\]", str_extract_all(text.raw, "[a-zA-Z\\s]+(?=\\])"))
# Error: `replacement` must be a character vector
给在那里我预计"Berthold Speer was een Duits architect"
目前我的代码看起来像这样的错误:
text.clean <- data_frame(text = text.raw) %>%
mutate(text = str_replace_all(text, "\\[\\[.*?\\]\\]", str_extract_all(text, "[a-zA-Z\\s]+(?=\\])")))
我希望有人知道的解决方案,或者可以点我到重复的问题如果存在一个。我期望的输出是"Berthold Speer was een Duits architect"
。
最后想要的字符串是什么? –
'architect'。我想要''[[...]]'或'[[xxx |。]中的点...]]' – raoul
'text.raw%>%gsub(pattern ='\\ [。+ \\ |',replacement ='')%>% gsub(pattern ='\\] | \\ [ ',replacement ='')' –