java extrack只需要数字

java extrack只需要数字,java,numbers,format,extract,Java,Numbers,Format,Extract,我有一个示例字符串: 注意事项: g可以是结尾有点,也可以是结尾没有点 2014 g.这是一年,可能是20xx g.或19xx g格式。只有 需要: 但是我只需要提取物4135克和632.35克和7,3克 如果我们发现20xx(结尾处有或没有g.)或19xx(结尾处有或没有g.),这就是igore!(不要抽!) 请帮助我获取正则表达式字符串(用于java)此正则表达式可以为您实现: \b(?!19|20)(\d+(?:\.\d+)?)\s+g\.?\b 例如,在java正则表达式中: priv

我有一个示例字符串:

注意事项:

  • g可以是结尾有点,也可以是结尾没有点
  • 2014 g.这是一年,可能是20xx g.19xx g格式。只有
  • 需要:

    但是我只需要提取物4135克632.35克7,3克

    如果我们发现20xx(结尾处有或没有g.)或19xx(结尾处有或没有g.),这就是igore!(不要抽!)


    请帮助我获取正则表达式字符串(用于java)

    此正则表达式可以为您实现:

    \b(?!19|20)(\d+(?:\.\d+)?)\s+g\.?\b
    
    例如,在java正则表达式中:

    private static final Pattern PATTERN
        = Pattern.compile("\\b(?!19|20)(\\d+(?:\\.\\d+)?)\\s+g\\.?\\b");
    
    根据您的输入创建一个
    匹配器
    ,循环使用
    .find()
    并为每个匹配提取
    .group(1)

    final Matcher m = PATTERN.matcher(input);
    
    while (m.find())
        System.out.println(m.group(1));
    
    正则表达式的分解:

    \b            # Find a position where we have a word limit, then
    (?!19|20)     # find a position where we don't have "19" or "20" following, then
    (             # begin capturing group
      \d+         # one or more digits, followed by
      (?:         # begin non capturing group
        \.\d+     # one dot, followed by one or more digits
      )?          # end none capturing group, zero or one time,
    )             # end capturing group, followed by
    \s+           # one or more spaces, followed by
    g\.?          # "g", then a literal dot, zero or one time, followed by
    \b            # a word anchor again
    

    如果你有2014年的g呢。什么?如果2014年g.-今年是我们需要忽略的一年。我需要伊戈尔1900-1999和2000-2099-这对我来说都是一年
    \b            # Find a position where we have a word limit, then
    (?!19|20)     # find a position where we don't have "19" or "20" following, then
    (             # begin capturing group
      \d+         # one or more digits, followed by
      (?:         # begin non capturing group
        \.\d+     # one dot, followed by one or more digits
      )?          # end none capturing group, zero or one time,
    )             # end capturing group, followed by
    \s+           # one or more spaces, followed by
    g\.?          # "g", then a literal dot, zero or one time, followed by
    \b            # a word anchor again