【发布时间】:2021-09-04 09:10:42
【问题描述】:
我需要限制用户输入罗马数字的算术运算。 唯一可能的输入是 [I to X][+-/*][I to X]。
这就是我所拥有的:
boolean correctRoman = operation.matches("^(X|IX|IV|V?I{0,3}) ?[+-/*] ?(X|IX|IV|V?I{0,3})$")
我得到的不同输入:
"III" //false
"III + " //true-WHY??
"III + X" //true as it should be
谢谢!
【问题讨论】:
-
那是因为这里的最后一部分
V?I{0,3}匹配可选的V和 0-3 倍的I使得整个部分都是可选的。
标签: java regex roman-numerals