【问题标题】:How to use regex character class extensions in R?如何在 R 中使用正则表达式字符类扩展?
【发布时间】:2017-05-22 08:31:28
【问题描述】:

这个简单的正则表达式用于匹配每个单个数字

gregexpr(\'[[:digit:]]\', \'a1b2c3\')

返回我所期望的:

[[1]]
[1] 2 4 6
attr(,\"match.length\")
[1] 1 1 1
attr(,\"useBytes\")
[1] TRUE

但是 R 文档建议使用更紧凑的语法:

符号 \\d、\\s、\\D 和 \\S 表示数字和空间类别及其 否定(这些都是扩展)。

所以我尝试了

gregexpr(\'[\\d]\', \'a1b2c3\')

但这会返回一个错误:

Error: \'\\d\' is an unrecognized escape in character string starting \"\'[\\d\"

这个“扩展”是如何使用的?

  • 试试gregexpr(\'\\\\d\', \'a1b2c3\')
  • @Lamia 谢谢- 成功了。您想将此作为答案发布吗?

标签: r regex


【解决方案1】:

相当于

gregexpr('[[:digit:]]', 'a1b2c3')

gregexpr('\\d', 'a1b2c3')

您需要在正则表达式字符类前面加上一个双反斜杠 (\\)。

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 1970-01-01
    • 2018-12-27
    • 2016-11-11
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    相关资源
    最近更新 更多