如何识别和提取R中的字母数字字符

时间:2014-11-03 10:36:03

标签: regex r grep alphanumeric

我想从R中的一个圆形句子中提取字母数字字符。 我尝试过以下方法:

aa=grep("[:alnum:]","abc")

。这应该返回integer(0),但它会返回1,但不应该是这种情况,因为"abc"不是字母数字。 我在这里错过了什么? 基本上我正在寻找一个函数,它只搜索字母和数字组合的字符,例如:“ABC-0112”,“PCS12SCH” 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

[[:alnum:]]匹配字母或数字。要匹配包含两者的字符串,您应该使用

x <- c("ABC", "ABc12", "--A-1", "abc--", "89=A")
grep("(.*[[:alpha:]].*[[:digit:]]|.*[[:digit:]].*[[:alpha:]])", x)
# [1] 2 3 5

which(grepl("[[:alpha:]]", x) & grepl("[[:digit:]]", x))
# [1] 2 3 5