我想通過使用在 r 中重寫以下正則運算式[:alnum:],在我的理解中應該做同樣的事情:
starwars %>% mutate(name = str_replace_all(name, "[^a-zA-Z\\d\\s:\u00C0-\u00FF]", ""))
但是我得到的行為完全不是我所期望的:
starwars %>% mutate(name = str_replace_all(name, "[^:alnum:]", ""))
順便說一句,我需要洗掉下劃線_和所有空格。
uj5u.com熱心網友回復:
您可以使用
library(stringr)
str_replace_all(name, "[^[:alnum:]] ", "")
## or
str_replace_all(name, "[:^alnum:] ", "")
該[^[:alnum:]]模式是一個否定括號運算式( [^...]),它匹配除字母和數字以外的任何字符([:alnum:],一個 POSIX 字符類)。
該[:^alnum:]模式是具有相反含義的 POSIX 字符類的擴展。
的 是量詞,其它量化模式的一次或多次出現匹配。
此外,在 中stringr,速記字符類是 Unicode 感知的,因此您也可以使用
str_replace_all(name, "[\\W_] ", "")
where\W匹配除 Unicode 字母、數字或下劃線以外的任何字符,并_匹配下劃線。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/368509.html
