【发布时间】:2014-02-04 15:08:16
【问题描述】:
我正在尝试按组“%in%”和字符“@”来拆分字符串。所有文档和我能找到的所有内容都表明括号是用于在 R 正则表达式中进行分组的元字符。所以代码
> strsplit('example%in%aa(bbb)aa@cdef', '[(%in%)@]', perl=TRUE)
应该给我
[[1]]
[1] "example" "aa(bbb)aa" "cdef"
也就是说,它应该只保留“aa(bbb)aa”中的括号,因为匹配表达式中的括号没有被转义。但它实际上给了我
[[1]]
[1] "example" "" "" "" "aa" "bbb" "aa" "cdef"
好像括号不是元字符!这是怎么回事,我该如何解决?谢谢!
在 strsplit 中无论有无参数 perl=TRUE 都是如此。
【问题讨论】:
-
字符类翻译为
Each character stands alone。你所拥有的相当于(?: \( | % | i | n | @ | \) )
标签: regex r metacharacters