用Java解析REGEXP

用Java解析REGEXP,java,regex,Java,Regex,我需要解析一个过滤器字符串,其中包含 ">53" "> 53" " >53" " >53 " ">53.21" 并提取双53.21 编辑 Pattern p = Pattern.compile("s/^ *> *\\([0-9][.0-9]*\\) *$/\\1/p"); Matcher m = p.matcher("filterValue"); if (m.find()) {

我需要解析一个过滤器字符串,其中包含

    ">53"
    "> 53"
    " >53"
    " >53 "
    ">53.21"
并提取双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));
    }
里卡多

--在unix中我做到了

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

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

在Java中,模式应如下所示。您的正则表达式末尾几乎没有无效字符。可用于从
sed
复制

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

查看模式类。谢谢,添加代码。问题仍然存在,这是因为您的模式对于Java正则表达式实现无效。阅读文档。