我在R中使用正则表达式,代码如下:
> temp <- c("Herniorrhaphy, left inguinal", "Herniorrhaphy, right inguinal")
> grep("Herniorrhaphy, [left|right] inguinal",temp)
integer(0)
> grep("Herniorrhaphy, [left inguinal|right inguinal]",temp)
[1] 1 2
我想知道为什么这两个正则表达式给出了不同的结果,谢谢。
答案 0 :(得分:3)
根据文档中的正则表达式解释(http://stat.ethz.ch/R-manual/R-devel/library/base/html/regex.html):
请注意,更改不起作用 里面的字符类,其中|具有 它的字面含义。
这就解释了为什么第一种选择不会返回任何结果,因为'['和']'字符表示一个字符类。正确的sytax应该是:
grep("Herniorrhaphy, (left|right) inguinal",temp)
在我的R上,第二个选项也会返回空集:
> temp <- c("Herniorrhaphy, left inguinal", "Herniorrhaphy, right inguinal")
> grep("Herniorrhaphy, [left inguinal|right inguinal] inguinal",temp)
integer(0)
>
您确定要直接从工作区进行复制吗?
答案 1 :(得分:2)
我认为您需要括号(
)
而不是字符类[
]
,即
"Herniorrhaphy, (left|right) inguinal"
"Herniorrhaphy, (left inguinal|right inguinal)"