我对R中的正则表达式不太好。我想在向量的每个元素中第3次出现“ - ”后删除所有字符。
Initial string
aa-bbb-cccc => aa-bbb
aa-vvv-vv => aa-vvv
aa-ddd => aa-ddd
任何帮助?
答案 0 :(得分:4)
根据样本输入和预期输出判断,我假设您需要从第二个连字符开始删除所有内容。
您可以使用
sub("^([^-]*-[^-]*).*", "\\1", x)
请参阅regex demo
<强>详情:
^
- 字符串开头([^-]*-[^-]*)
- 第1组捕获0 {+ 1}以外的0 +字符,-
以及-
以外的0 +字符-
- 任何0+字符(在这样的TRE正则表达式中,点也与换行符匹配。) .*
(\\1
)是对第1组中捕获的文本的反向引用。
\1