我想通過 str_replace() 函式(stringr 包)使用 $0 正則運算式運算子。
例如,我有一個向量:
test <- c("1111", "2222", "3333")
test
[1] "1111" "2222" "3333"
我想得到下一個向量:“111_1”“222_2”“333_3”
當我嘗試通過 str_replace 執行此操作時,我得到以下資訊:
str_replace(test, "^\\d{3}", "\\$0_")
[1] "\\111_1" "\\222_2" "\\333_3"
$0 在 stringr 中是如何作業的?
PS:我不想使用 (?<=) 和 (?=) 笨重的運算子。
uj5u.com熱心網友回復:
似乎沒有 $ 的 \0 指的是匹配,所以:
str_replace(test, "^\\d{3}", "\\0_")
## [1] "111_1" "222_2" "333_3"
在基礎 R 中,可以這樣做,其中 \1 指的是第一個(并且僅在此處)捕獲組:
sub("^(\\d{3})", "\\1_", test)
## [1] "111_1" "222_2" "333_3"
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/454434.html
