R 中的字母数字正则表达式

Roc*_*nce 4 regex r alphanumeric

我正在尝试使用 [:alnum:] 如 ?regex 上所述

任何人都知道为什么

grepl("^([a-zA-Z0-9])+([;])", x="dj5sads;adsa")
Run Code Online (Sandbox Code Playgroud)

返回 TRUE,但是

grepl("^([:alnum:])+([;])", x="dj5sads;adsa")    
Run Code Online (Sandbox Code Playgroud)

返回假?

Bas*_*i M 9

[:alnum:]只是班级的名称。当您想要将此命名类放入字符类中时,您必须用另一对将其括起来[]

[[:alnum:]]
Run Code Online (Sandbox Code Playgroud)

在你的例子中它是

grepl("^([[:alnum:]])+([;])", x="dj5sads;adsa")    
//Output: TRUE
Run Code Online (Sandbox Code Playgroud)

演示@ideone

  • @RockScience 不客气。我希望很清楚,这适用于所有命名类(`[:alnum:]`、`[:alpha:]`、`[:blank:]` 等)! (2认同)