有人可以解释为什么这个正则表达式与中心的-+*\
不匹配?我认为表达式[+-\\*]{1}
将匹配单个运算符,并拒绝此正则表达式接受的222
之类的字符串
expr<-c("1+2","222","")
res<-lapply(expr,function(x){regmatches(x,regexpr("[0-9]+[+-\\*]{1}[0-9]+", x,))})
目标: 1 + 2
另外,为什么我不能使用([0-9]+[+-\\*]{1}[0-9]+){1,}
来匹配1*2+2 and 1+8*2+2*4.....
来扩展该模式?
答案 0 :(得分:2)
嗯,有一件事你可能需要在-
之后将\-
更改为\\-
(R中的+
),因为我不认为你的意思是指定一个字符范围。