2
public class MixedNumberRegex {
public static void main(String[] args) {
Pattern FRACTION_PATTERN = Pattern.compile("(?:(\\d+)\\s+)?(\\d+)/(\\d+)");
Matcher m = FRACTION_PATTERN.matcher("1/2 + 1 1/2");
System.out.print(m.group(1));
}
}
嗨,我试图从字符串中提取出混合数字。我的模式表达是否正确? 从这个例子中,我想输出是“1 1/2”。正则表达式混合分数
我不断收到异常
异常线程 “main” java.lang.IllegalStateException:没有找到匹配 在java.util.regex.Matcher.group(来源不明) 在MixedNumberRegex.main (MixedNumberRegex.java:15) `
我仍然得到了没有找到匹配的异常改变,以您的示例模板后。 ( – gonggong
)你是否总想捕获第二组数字? – Szymon
不是真的,因为混合数字的表达式可以出现在任何地方,例如:“1 1/2 + 1/4”或“1/4 + 1 1/2“,或者它也可以是一个等式中的多个混合数字,例如: ”1 1/2 + 1/4 - 1 1/8“ 我想捕获等式中的所有混合数字。 – gonggong