繁体   English   中英

gsub在字符集之后替换文本

[英]gsub replace text after set of characters

我有很多错误消息正在尝试清理。

一些错误以文本"(sec): 0.xxx"结尾,我正在尝试使用gsub删除(sec)之后的所有内容

data$Message <- gsub("(sec).*", "", data$Message, perl = TRUE)

这将返回(

我知道只使用“:”或“)”会很容易,但是这样会影响我不想更改的其他错误。

有没有一种方法可以使用gsub来查看多个字符(例如“(sec)”)而不是一个? 在相关注释上是否有一个符号,表示与“。”相似的任何数字(不包括文字)?

您可以 ?<= 之后使用regex look来避免sec被删除,同时断言被删除的模式遵循sec ,因此(?<=sec\\\\)).*将在sec)本身而不是sec)之后删除所有内容:

gsub("(?<=sec\\)).*", "", "(sec): 0.xxx", perl = TRUE)
# [1] "(sec)"

您可以选择表达式的第一部分(在方括号之间),而忽略其余部分:

gsub('(^.*\\(sec\\)).*', '\\1', '(sec): 0.xxx')

## [1] "(sec)"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM