用R中的Regex和Gsub替换字符串后的一些文本

时间:2017-06-27 23:44:56

标签: r regex gsub

这是一个简单的问题,但我对Regex并不擅长。 (我尝试了许多表达但没有成功)

我希望在模式之后替换所有文本(无替换)。

我的模式是这样的:

/canais/*/

我的数据是:

/canais/b3/conheca-o-pai-dos-indices-da-b3/
/canais/cpbs/cvm-abre-audiencia-publica-de-instruc
/canais/stocche-forbes/dividendo-controverso/

期望的结果是:

/canais/b3/
/canais/cpbs/
/canais/stocche-forbes/

如何使用gsub进行操作?

由于

1 个答案:

答案 0 :(得分:3)

您可以使用以下sub

x <- c("/canais/b3/conheca-o-pai-dos-indices-da-b3/","/canais/cpbs/cvm-abre-audiencia-publica-de-instruc","/canais/stocche-forbes/dividendo-controverso/")
sub("^(/canais/[^/]+/).*", "\\1", x)

请参阅online R demo

详细

  • ^ - 字符串开头
  • (/canais/[^/]+/) - 第1组(后来称为\1)捕获:
    • /canais/ - 子字符串/canais/
    • [^/]+ - 除/
    • 以外的1个或多个字符
    • / - 斜线
  • .* - 字符串末尾的任何0+字符。