在 R 中用 Regex 和 Gsub 替换字符串后的一些文本
Replace some text after a string with Regex and Gsub in R
这是一个简单的问题,但我对 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 实现?
谢谢
您可以使用以下 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)
详情:
^
- 字符串开头
(/canais/[^/]+/)
- 第 1 组(稍后称为 </code>)捕获:
<ul>
<li><code>/canais/
- 子字符串 /canais/
[^/]+
- /
以外的 1 个或多个字符
/
- 斜杠
.*
- 到字符串末尾的任何 0+ 个字符。
这是一个简单的问题,但我对 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 实现?
谢谢
您可以使用以下 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)
详情:
^
- 字符串开头(/canais/[^/]+/)
- 第 1 组(稍后称为</code>)捕获: <ul> <li><code>/canais/
- 子字符串/canais/
[^/]+
-/
以外的 1 个或多个字符
/
- 斜杠
.*
- 到字符串末尾的任何 0+ 个字符。