【发布时间】:2020-10-24 12:29:26
【问题描述】:
有人告诉我[[a-z][0-9]] 等同于[a-z0-9],但我尝试了几个例子:
grepl("[[a-z][0-9]]", "d") 返回FALSE。
类似地,grepl("[[:alpha:][0-9]]", "d") 返回 FALSE 而像 grepl("[[:upper:][:lower:]]", "d") 这样的东西可以正常工作。
请问这是否表明双方括号只能用于组合"[:...:]" 形式的事物,而不能用于组合[A-z] 或[0-9] 之类的事物?
如果是这样,为什么 R 会阻止我们这样做?而grepl("[[a-z][0-9]]", "d") 和grepl("[[a-z]]", "d") 究竟是什么意思?
此外,我知道我们需要使用双方括号,比如"[[:digit:]]",因为"[:digit:]" 宁愿搜索“:”、“d”、“i”、“g”或“ t"(来自this 问题)。但是"[[:digit:]]" 的结构究竟是如何解释的呢? (只是一个猜测:R 是否将其解释为 [:digit:] 与自身的微不足道的联合,因此它只是 R 的“可读”[:digit:]?)
【问题讨论】: