gpt4 book ai didi

java - 正则表达式带分数

转载 作者:行者123 更新时间:2023-11-30 11:24:15 26 4
gpt4 key购买 nike

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”。

我不断收到异常

Exception in thread "main" java.lang.IllegalStateException: No match found at java.util.regex.Matcher.group(Unknown Source) at MixedNumberRegex.main(MixedNumberRegex.java:15) `

最佳答案

你可以稍微简化你的正则表达式并这样做:

    Pattern FRACTION_PATTERN = Pattern.compile("(?:\\d+\\s+)?\\d/\\d");

Matcher m = FRACTION_PATTERN.matcher("1/2 + 1 1/2");

while (m.find()) {
String found = m.group();
}

它将找到 1/21 1/2


如果只想捕获 1 1/2,请使用模式:

Pattern FRACTION_PATTERN = Pattern.compile("\\d+\\s+\\d/\\d");

关于java - 正则表达式带分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20727396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com