我正在尝试从字符向量中提取地铁站名称。这些电台名称前面总是以'METRO-'开头。
这是一个例子。
x <- c('BLA BLA BLA METRO-SNOWDON BLA BLI BLU', 'BLA VLA BLU METRO-SQUARE-VICTORIA YES NO')
我想提取METRO之后的字符 - 直到第一个空白区域。
所需的输出应该是这样的
"METRO-SNOWDON", "METRO-SQUARE-VICTORIA"
我无法弄清楚代码中的“空白”部分
sub('.*(METRO-)', '\\1', x)
谢了,兄弟们!
只要您的地铁名称中没有包含空格,此模式就可以使用:
gsub(".*?(METRO-.*?)\\s.*", "\\1", x)
.*?
意味着匹配任何东西,直到模式的下一部分匹配。
这在第二次出现时尤其重要,因为我们希望在“METRO”之后的第一个空白空间结束捕获组。如果没有?
,捕获组将包含所有内容,直到最后的空白实例。
上面的表达式返回:
[1] "METRO-SNOWDON" "METRO-SQUARE-VICTORIA"