[英]Using gsub to replace last occurence of string in R
我具有以下字符向量,而不需要使用gsub
進行修改。
strings <- c("x", "pm2.5.median", "rmin.10000m", "rmin.2500m", "rmax.5000m")
所需的過濾strings
輸出:
"x", "pm2.5.median", "rmin", "rmin", "rmax"
我當前的嘗試適用於除pm2.5.median
字符串(包含需要保留的點)以外的所有內容。 我真的只是想刪除附加到每個變量末尾的緩沖區大小,例如1000m
, 2500m
, 5000m
, 7500m
和10000m
。
gsub("\\..*m$", "", strings)
"x", "pm2", "rmin", "rmin", "rmax"
匹配點,任意數字, m
和字符串的末尾,並將其替換為空字符串。 請注意,我們寧願sub
給gsub
,因為我們只是在每串一個替代興趣在這里。
sub("\\.\\d+m$", "", strings)
## [1] "x" "pm2.5.median" "rmin" "rmin" "rmax"
.*
模式匹配盡可能多的0個或更多字符。 \\..*m$
模式與第一個(最左側)匹配.
在字符串中,然后截取所有以m
結尾的文本。
你需要
> sub("\\.[^.]*m$", "", strings)
[1] "x" "pm2.5.median" "rmin" "rmin" "rmax"
在這里, \\.[^.]*m$
匹配.
,然后是0個或多個除點號以外的字符,然后在字符串的末尾加上m
。
參見regex演示 。
細節
\\.
-點(必須轉義,因為它是特殊的正則表達式字符) [^.]*
-匹配除char以外的任何字符的否定字符類.
0次以上 m
一個m
char $
-字符串結尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.