我在R中有一个包含文本字符串的列(称为' city')。我的目标是从文本字符串中只提取一个单词,即城市文本。城市文字始终跟在“'”中,例如文字可能是:
'in London'
'in Manchester'
我尝试创建一个新列(' municipality'):
df$municipality <- gsub(".*in ?([A-Z+).*$","\\1",df$city)
这给了我&#39;之后的第一个字母,但我需要下一个字(只有下一个字)
然后我尝试了:
gsub(".*in ?([A-Z]\w+))")
在正则表达式检查器上工作,但在R中没有。有人可以帮助我。我知道这可能很简单,但我无法破解它。提前致谢。
答案 0 :(得分:5)
我们可以使用str_extract
library(stringr)
str_extract(df$city, '(?<=in\\s)\\w+')
#[1] "London" "Manchester"
答案 1 :(得分:4)
以下正则表达式将与您的city
列中的第二个字匹配:
^in\\s([^ ]*).*$
这匹配单个空格后跟单词in
,后跟任意非空格字符的捕获组,其中包含城市名称。
示例:强>
df <- data.frame(city=c("in London town", "in Manchester city"))
df$municipality <- gsub("^in\\s([^ ]*).*$", "\\1", df$city)
> df$municipality
[1] "London" "Manchester"