我正在尝试从字符向量中提取地铁站名称。这些电台名称始终以“ 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)
谢谢家伙!
答案 0 :(得分:2)
只要您不会在Metro名称中包含空格,就可以使用此模式:
gsub(".*?(METRO-.*?)\\s.*", "\\1", x)
.*?
表示匹配所有内容,直到模式的下一部分匹配为止。
这在第二次出现时特别重要,因为我们要在“ METRO”之后的空白的 first 实例处结束捕获组。如果没有?
,捕获组将包含所有内容,直到最后一个空白实例为止。
上面的表达式返回:
[1] "METRO-SNOWDON" "METRO-SQUARE-VICTORIA"