這一定很容易,但我無法處理。對不起!
我有這個字串:
string <- c("AB1C1", "AB2C2", "AB3C20")
[1] "AB1C1" "AB2C2" "AB3C20"
我想加入的最后一個字符后跟任何數字之前下劃線。
期望的輸出:
[1] "AB1_C1" "AB2_C2" "AB3_C20"
到目前為止我已經嘗試過:
我可以匹配正則運算式:[A-Z][0-9] $最后一個字符后跟任何數字。
但我不知道如何在這場比賽之前添加下劃線
uj5u.com熱心網友回復:
您可以使用
sub("(.*)(\\D\\d )$", "\\1_\\2", string)
## => [1] "AB1_C1" "AB2_C2" "AB3_C20"
sub("(\\D\\d )$", "_\\1", string)
## => [1] "AB1_C1" "AB2_C2" "AB3_C20"
請參閱正則運算式演示/正則運算式演示 #2。詳情:
(.*)- 第 1 組:盡可能多的零個或多個字符(\D\d )- 第 2 組:任何非數字,然后是一位或多位數字$- 字串的結尾。
請參閱R 演示:
string <- c("AB1C1", "AB2C2", "AB3C20")
sub("(.*)(\\D\\d )$", "\\1_\\2", string)
## => [1] "AB1_C1" "AB2_C2" "AB3_C20"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/398896.html
