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

4
我正在尝试使用在?regex中解释的[:alnum:]。
有人知道为什么吗?
grepl("^([a-zA-Z0-9])+([;])", x="dj5sads;adsa")

返回TRUE,但是

grepl("^([:alnum:])+([;])", x="dj5sads;adsa")    

返回FALSE?

2个回答

9

[:alnum:]只是一个类的名称。如果要将这个“命名类”放入字符类中,您需要用另一对[]括起来:

[[:alnum:]]

在你的例子中,应该是这样的。
grepl("^([[:alnum:]])+([;])", x="dj5sads;adsa")    
//Output: TRUE

demo @ ideone


谢谢!我会尽力记住下次。 - RockScience
2
@RockScience 不客气。我希望明确指出,这适用于所有列出的类 ([:alnum:], [:alpha:], [:blank:] 等等)! - KeyNone
我来这里是因为我想知道为什么 \\w 不起作用。然后我发现可以使用 perl = TRUE 来解决。 - deeenes

2
你需要的是什么:
grepl("^([[:alnum:]])+([;])", x="dj5sads;adsa")    

记得我们把SearchPattern放在了这里


谢谢!对不起你晚了几秒钟 ;) - RockScience

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接