Java 要替换的正则表达式<;
我有下面的数据,是使用regexp\u replace函数编写通用正则表达式以在oracle中获得所需输出的任何方法Java 要替换的正则表达式<;,java,mysql,sql,regex,oracle,Java,Mysql,Sql,Regex,Oracle,我有下面的数据,是使用regexp\u replace函数编写通用正则表达式以在oracle中获得所需输出的任何方法 <Tier><grade><><sdlc><17,10><> : result should be 17.10 <><sdlc><16,909312> : 16.909312 <><sdlc><11396,87> :11396.87
<Tier><grade><><sdlc><17,10><> : result should be 17.10
<><sdlc><16,909312> : 16.909312
<><sdlc><11396,87> :11396.87
<20121217> :20121217
<UNIT><6086> : 6086
<Tier1><><sdlc><0,47> :0.47
:结果应为17.10
: 16.909312
:11396.87
:20121217
: 6086
:0.47
您可以使用如下简单的正则表达式:
步骤:
- 将
替换为,
- 使用正则表达式查找匹配项
String s=”“;
s=s。替换(',',');
模式p=Pattern.compile(“\\d+\\.\.\\d+”);
匹配器m=匹配器p;
if(m.find()){
System.out.println(m.group());//17.10
}
谢谢Reimeus,但我希望它使用正则表达式,这是我的限制。您的数据是XML吗?如果是这样的话,最好读一读这个-@Sheller他的问题很清楚<代码>转换为17.10
@shelleter之所以会这样,是因为我们只是简单地看了一下,忽略了细节。发生在我们最好的人身上谢谢,它对其他字段的工作原理::16.909312:11396.87:20121217:6086:0.47对其他字段也应用相同的正则表达式。如何在oracle正则表达式_替换函数中使用它?嗯,我不太确定在oracle中如何做,因为我不熟悉oracle的正则表达式引擎,我建议您将问题更新为如何使用oracle正则表达式解析此字符串,您将获得更多帮助。
String s="<Tier><grade><><sdlc><17,10><>";
s = s.replace(',', '.');
Pattern p = Pattern.compile("\\d+\\.*\\d+");
Matcher m = p.matcher(s);
if(m.find()){
System.out.println(m.group());// 17.10
}