【问题标题】:Difference between double and single square brackets in regex in R? [duplicate]R中正则表达式中双方括号和单方括号的区别? [复制]
【发布时间】:2019-03-27 14:33:24
【问题描述】:

为什么在 R 中在这里使用单方括号返回 FALSE,而使用双方括号返回 TRUE?示例:

> grepl('[:alpha:]', 'AA')
[1] FALSE
> grepl('[[:alpha:]]', 'AA')
[1] TRUE

【问题讨论】:

  • [:alpha:] posix 字符类只能出现在字符类中。
  • [:alpha:] 仅适用于 ICU 正则表达式,具有 stringr 函数。基本上,在几乎所有支持 POSIX 字符类的风格中,都必须在括号表达式中使用 POSIX 字符类。

标签: r regex


【解决方案1】:

[[:alpha:]] 是 R 中正则表达式独有的特定字符类。在此处查看字符类

https://www.rstudio.com/wp-content/uploads/2016/09/RegExCheatsheet.pdf

【讨论】:

  • 它们被称为 POSIX 字符类的事实意味着它们不是 R 正则表达式所独有的。您也可以使用 [:alpha:],但使用由 ICU 正则表达式库提供支持的 stringr 函数。
猜你喜欢
  • 2012-11-12
  • 2012-04-05
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多