用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正则表达式实现无效。阅读文档。