如何从字符串中获取特定位置的单词?
例如,我希望在英国伦敦获得station code:
code <- getStationCode("London", region="UNITED KINGDOM")
code
结果:
[1] "UNITED KINGDOM EGLINTON/LONDOND EGAE 55 02N 007 09W 9 X T 6 GB"
[2] "UNITED KINGDOM LONDON/GATWICK A EGKK 03776 51 08N 000 10W 62 X T 6 GB"
[3] "UNITED KINGDOM LONDON CITY AIRP EGLC 51 30N 000 03E 5 X T 6 GB"
[4] "UNITED KINGDOM LONDON/HEATHROW EGLL 03772 51 29N 000 27W 24 X T 6 GB"
[5] "UNITED KINGDOM LONDON WEA CENTE EGRB 03779 51 30N 000 07W 39 X 7 GB"
例如,我选择列表中的第二项:
second <- code[2]
我会得到:
"UNITED KINGDOM LONDON/GATWICK A EGKK 03776 51 08N 000 10W 62 X T 6 GB"
然后如何从该字符串中获取EGKK
?
答案 0 :(得分:3)
我们可以使用str_extract
提取一个或多个大写字母,然后是正则表达式查找(一个或多个空格(\\s+
),后跟一个或多个数字([0-9]+
))< / p>
library(stringr)
str_extract(str1, "[A-Z]+(?=\\s+[0-9]+)")
#[1] "EGKK"
如果电台代码是4个字母的字符串
str_extract(str1, "\\b[A-Z]{4}\\b")
#[1] "EGKK"
str1 <- "UNITED KINGDOM LONDON/GATWICK A EGKK 03776 51 08N 000 10W 62 X T 6 GB"