【问题标题】:Regular expression to replace < [closed]正则表达式替换 < [关闭]
【发布时间】:2012-12-18 22:32:25
【问题描述】:

我有下面的数据,有什么方法可以使用regexp_replace函数在oracle中编写常用的正则表达式以获得所需的输出。

<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

【问题讨论】:

  • 感谢 Reimeus,但我想使用正则表达式,这是我的限制。
  • 您的数据是 XML 吗?如果是这样,最好阅读这篇文章-stackoverflow.com/questions/1732348/…
  • @shellter 他的问题很清楚。 &lt;Tier&gt;&lt;grade&gt;&lt;&gt;&lt;sdlc&gt;&lt;17,10&gt;&lt;&gt; 转换为 17.10
  • @shellter 发生这种情况是因为我们只是简单地查看了一下并错过了细节。发生在我们最好的人身上。 ;-}

标签: java mysql sql regex oracle


【解决方案1】:

你可以像下面这样简单的正则表达式:

步骤:

  • , 替换为.
  • 使用正则表达式查找匹配项

代码:

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
        }

【讨论】:

  • 谢谢,它在其他领域的工作原理: : 16.909312 :11396.87 :20121217 : 6086 :0.47
  • 对其他应用同样的正则表达式。
  • 如何在oracle regexp_replace函数中使用这个?
  • 嗯,我不太确定如何在 oracle 中执行此操作,因为我不熟悉 oracle 的正则表达式引擎,我建议您将问题更新为如何使用 oracle 正则表达式解析此字符串,您会获得更多帮助。
猜你喜欢
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
相关资源
最近更新 更多