正则表达式

当前位置:正则表达式 > oracle

oracle正则表达式匹配空格

本文介绍了Oracle正则表达式匹配空格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用正则表达式更改 oracle 中的值:

input: <input id="f_alta">13/10/2016  10:10:10</input>
output: 13/10/2016  10:10:10

好吧,为了进入我使用的节点:([\s0-9/:]+)但不起作用,无论如何我使用:([ 0-9/:]+) 并且有效,为什么不使用第一个?

我正在使用 oracle sql developer 进行测试.

示例:

不工作:

select REGEXP_REPLACE('<input id="f_alta">13/10/2016  10:10:10</input>', '<input id="f_alta">([\s0-9/:]+)</input>', '\1' ) from dual

工作:

select REGEXP_REPLACE('<input id="f_alta">13/10/2016  10:10:10</input>', '<input id="f_alta">([ 0-9/:]+)</input>', '\1' ) from dual

 

推荐答案

由于 \s 是一个类似 Perl 的结构,而且 Oracle 正则表达式是基于 POSIX 的,所以使用 POSIX 字符类更安全[:space:](包括垂直空格)或 [:blank:](仅匹配空格和制表符).

例如使用

([[:space:]0-9/:]+)

记住始终在方括号表达式中使用 POSIX 字符类(因此,要匹配一个字母字符,请使用 [[:alpha:]],即类的名称必须在冒号和双引号内方括号).

 


相关文章
苏ICP备2022026517号-2  |   苏公网安备 32081202000316号
淮安先皓网络科技有限公司 © 版权所有  联系我们