我有看起來像這樣的字串:
> ABCD.1:f_HJK
> ABFD.1:f_HTK
> CJD:f_HRK
> QQYP.2:f_HDP
所以基本上,我在第一部分總是有一個字串,我可以有一個帶有 . 和一個數字,在這部分之后我總是有 ':' 和一個字串。我想洗掉'。 number' 當它包含在字串中時,使用 R。
我知道正則運算式可能很有用,但我不知道我可以在這種情況下應用它們。我知道我可以替換 '.' 使用 gsub,但不知道如何添加有關數字和“:”的資訊。
感謝您的幫助。
uj5u.com熱心網友回復:
這是否有效:
v <- c('ABCD.1:f_HJK','ABFD.1:f_HTK','CJD:f_HRK','QQYP.2:f_HDP')
v
[1] "ABCD.1:f_HJK" "ABFD.1:f_HTK" "CJD:f_HRK" "QQYP.2:f_HDP"
gsub('([A-Z]{,4})(\\.\\d)?(:.*)','\\1\\3',v)
[1] "ABCD:f_HJK" "ABFD:f_HTK" "CJD:f_HRK" "QQYP:f_HDP"
uj5u.com熱心網友回復:
您還可以根據字串的結構使用以下任何一種
如果字串中沒有其他句點和數字
sub("\\.\\d ", "", v) [1] "ABCD:f_HJK" "ABFD:f_HTK" "CJD:f_HRK" "QQYP:f_HDP"如果您只對匹配的第一個模式感興趣。
sub("^([A-Z] )\\.\\d :", "\\1:", v) [1] "ABCD:f_HJK" "ABFD:f_HTK" "CJD:f_HRK" "QQYP:f_HDP"同上,呼叫perl。即沒有捕獲組
sub("^[A-Z] \\K\\.\\d ", "", v, perl = TRUE) [1] "ABCD:f_HJK" "ABFD:f_HTK" "CJD:f_HRK" "QQYP:f_HDP"
uj5u.com熱心網友回復:
如果我正確理解了您的解釋,這應該可以解決問題:
gsub("(\\.\\d )", "", string)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/333115.html
