使用R将字符串从重复出现的单词中提取到第一个空格

时间:2019-01-22 20:58:43

标签: r regex string extract

我正在尝试从字符向量中提取地铁站名称。这些电台名称始终以“ 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)

谢谢家伙!

1 个答案:

答案 0 :(得分:2)

只要您不会在Metro名称中包含空格,就可以使用此模式:

gsub(".*?(METRO-.*?)\\s.*", "\\1", x)

.*?表示匹配所有内容,直到模式的下一部分匹配为止。

这在第二次出现时特别重要,因为我们要在“ METRO”之后的空白的 first 实例处结束捕获组。如果没有?,捕获组将包含所有内容,直到最后一个空白实例为止。

上面的表达式返回:

[1] "METRO-SNOWDON"         "METRO-SQUARE-VICTORIA"