有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

识别字符串中粗体字符的java模式匹配

我需要解析这个字符串并从中提取粗体数字。 我没有适合你的正则表达式 1.useInput可以是 =“0067711990999999*1955*05150709999999999n9+01*23*1+9999999.”

Pattern pattern;
    String regex="\\s*-?\\d+(?:\\s*[-+/*]\\s*-?\\d+)+\\s*";
    pattern=Pattern.compile(regex);
    Matcher match = pattern.matcher(userInput);

问题是我找不到任何与粗体字符串匹配的正则表达式

我需要一个地图缩小程序

谢谢


共 (2) 个答案

  1. # 1 楼答案

    下面的代码

    String myString = "0067711990999999*1955*0515070999999999999N9+01*23*1+99999999";
    // matches all number series (one or more consecutive digits) 
    // between * characters. * normally matches any character and 
    // so has to be escaped using \, which in a string becomes \\,
    // i.e the regular expression is actually \*([0-9])\*
    Pattern pattern = Pattern.compile("\\*([0-9]+)\\*");
    Matcher matcher = pattern.matcher(myString);
    while (matcher.find()) {
        // the parantheses in the regex creates a capturing group, i.e.
        // a substring within the match that can later be extracted. 
        // the "1" here means we're picking up the value of the first 
        // (and in this case, only) capturing group, which is the 
        // actual numbers (i.e. not including the * characters)
        System.out.println(matcher.group(1));
    }
    

    将打印

    1955
    23
    

    这就是你要找的吗