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