簡體   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