正则表达式匹配数学表达式

时间:2016-01-26 01:27:09

标签: regex r

有人可以解释为什么这个正则表达式与中心的-+*\不匹配?我认为表达式[+-\\*]{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.....来扩展该模式?

1 个答案:

答案 0 :(得分:2)

嗯,有一件事你可能需要在-之后将\-更改为\\-(R中的+),因为我不认为你的意思是指定一个字符范围。