在Java中解析REGEX

时间:2014-04-03 10:20:48

标签: java regex

我需要解析一个包含

的过滤器字符串
    ">53"
    "> 53"
    " >53"
    " >53 "
    ">53.21"

并提取Double 53.21

修改

    Pattern p = Pattern.compile("s/^ *> *\\([0-9][.0-9]*\\) *$/\\1/p");
    Matcher m = p.matcher("filterValue");
    if (m.find()) {
         myVal = Double.parseDouble(m.group(1));
    }

的Riccardo

- 在unix中我做了

    echo '> 53.21  ' | sed -n 's/^ *> *\([0-9][.0-9]*\) *$/\1/p'

1 个答案:

答案 0 :(得分:0)

你没有捕获正则表达式中的任何组。要sed尝试在()周围添加[0-9][.0-9]*,请\(([0-9][.0-9]*)\)

在Java中,模式应该是以下模式。你的正则表达式结尾处有几个无效字符。可以从sed复制。

Pattern p = Pattern.compile("s/^[ ]*>[ ]*\\(([0-9]+(?:[.][0-9]+)?)\\)[ ]*$");