查看R regex documentation,[:punct:]
包含以下字符 -
标点字符:
! " #$%& ' ()* + , - 。 / :; < => ? @ [\ _] ^ _` {| }〜。
但是当我尝试在stringr::str_replace_all()
中使用它时,它似乎无法检测到+
。
str_vec = c("c++", "c--", "c+_")
str_replace_all(str_vec, pattern = "[[:punct:]]", replacement = "_")
[1] "c++" "c__" "c+_"
str_replace_all(str_vec, pattern = "[[:punct:]]{2,}", replacement = "_")
[1] "c++" "c_" "c+_"
是否与区域设置有关?
Sys.getlocale()
[1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=en_US.UTF-8;LC_ADDRESS=en_US.UTF-8;LC_TELEPHONE=en_US.UTF-8;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=en_US.UTF-8"
还是我在这里失踪的其他东西?