我正在使用regexp来解析某种语法的字符串。
Pattern.compile("(\\d+)(d)(\\d+)(([\\+\\-\\*\\/])(\\d+))*"); // The regexp pattern
我希望这匹配像:
这样的字符串2d6
4d4+1
2d12*2-1
问题是,它还匹配以x - * /结尾的字符串,例如:
3d4-
答案 0 :(得分:1)
使用此正则表达式(\d+)(d)(\d+)(([-+*/])(\d+))
但是2d12x2-1不匹配,x在您的正则表达式中不存在,并且您没有说任何内容,因为包含x
将正则表达式更改为(\d+)(d)([\dx]+)(([\+\-\*\/])(\d+))
编辑:
你可能需要锚吗?在你的正则表达式中设置^
和$
Pattern.compile("^(\\d+)(d)(\\d+)(([-+*/])(\\d+))*$");