`
q12344566789
  • 浏览: 31861 次
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

oracle 之replace 和 regexp_replace函数

 
阅读更多

oracle中replace函数:

用法:replace(tarString,paString,gString)。

参数说明:tarString,要替换的原字符串;paString,需要替换的子字符串;gString,需要替换的目标字符串。

具体说明:

select replace('01111','0','2') from dual;
结果是

21111
若减少gString参数,即为将tarString中为paString的地方删除。

具体说明:

select replace('01111','0') from dual;
结果为

1111

oracle中regexp_replace函数:


转自http://blog.csdn.net/itmyhome1990/article/details/50380718

转自http://blog.csdn.net/itmyhome1990/article/details/50380718

转自http://blog.csdn.net/itmyhome1990/article/details/50380718

重要的事情说三遍。

REGEXP_REPLACE让你搜索的字符串的正则表达式模式REPLACE函数的功能。默认情况下,

该函数返回source_char与replace_string取代了正则表达式模式的每个实例。

返回的字符串是在相同的字符集source_char。

语法

Oracle数据库中的REGEXP_REPLACE函数的语法是:

REGEXP_REPLACE(source_char, pattern [, replace_string [, position [, occurrence [, match_parameter ] ] ] ] )
  • 1
  • 1

参数

source_char

搜索值的字符表达式。这通常是一个字符列,可以是任何数据类型CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB或NCLOB。

pattern

正则表达式

Value Description
^ Matches the beginning of a string. If used with amatch_parameterof ‘m’, it matches the start of a line anywhere withinexpression.
$ Matches the end of a string. If used with amatch_parameterof ‘m’, it matches the end of a line anywhere withinexpression.
* 匹配零个或多个.
+ 匹配一个或多个出现.
? 匹配零次或一次出现.
. 匹配任何字符,除了空.
| Used like an "OR" to specify more than one alternative.
[ ] Used to specify a matching list where you are trying to match any one of the characters in the list.
[^ ] Used to specify a nonmatching list where you are trying to match any character except for the ones in the list.
( ) Used to group expressions as a subexpression.
{m} Matches m times.
{m,} Matches at least m times.
{m,n} Matches at least m times, but no more than n times.
\n n is a number between 1 and 9. Matches the nth subexpression found within ( ) before encountering \n.
[..] Matches one collation element that can be more than one character.
[::] Matches character classes.
[==] Matches equivalence classes.
\d 匹配一个数字字符.
\D 匹配一个非数字字符.
\w 匹配包括下划线的任何单词字符.
\W 匹配任何非单词字符.
\s 匹配任何空白字符,包括空格、制表符、换页符等等.
\S 匹配任何非空白字符.
\A Matches the beginning of a string or matches at the end of a string before a newline character.
\Z Matches at the end of a string.
*? Matches the preceding pattern zero or more occurrences.
+? Matches the preceding pattern one or more occurrences.
?? Matches the preceding pattern zero or one occurrence.
{n}? Matches the preceding pattern n times.
{n,}? Matches the preceding pattern at least n times.
{n,m}? Matches the preceding pattern at least n times, but not more than m times.

replace_string

可选。匹配的模式将被替换replace_string字符串。如果省略replace_string参数,

将删除所有匹配的模式,并返回结果字符串。

position

可选。在字符串中的开始位置搜索。如果省略,则默认为1。

occurrence

可选。是一个非负整数默认为1,指示替换操作的发生:

如果指定0,那么所有出现将被替换字符串。

如果指定了正整数n,那么将替换第n次出现。

match_parameter

可选。它允许你修改REGEXP_REPLACE功能匹配的行为。它可以是以下的组合:

Value Description
‘c’ 区分大小写的匹配.
‘i’ 不区分大小写的匹配.
‘n’ Allows the period character (.) to match the newline character. By default, the period is a wildcard.
‘m’ expressionis assumed to have multiple lines, where ^ is the start of a line and $ is the end of a line, regardless of the position of those characters inexpression. By default,expressionis assumed to be a single line.
‘x’ Whitespace characters are ignored. By default, whitespace characters are matched like any other character.

EXAMPLE - 匹配第一个字

让我们开始使用REGEXP_REPLACE函数替换字符串中的第一个字。

For example:

SELECT REGEXP_REPLACE ('itmyhome is my network id', '^(\S*)', 'luck')
FROM dual;

Result: luck is my network id
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

这个例子会返回”luck is my network id”,

因为它会再字符串的开始找到第一个匹配的字符,然后替换为”luck”

EXAMPLE - 匹配数字字符

我们将使用REGEXP_REPLACE函数来匹配单个数字字符模式。

For example:

SELECT REGEXP_REPLACE ('2, 5, and 10 are numbers in this example', '\d', '#')
FROM dual;

Result: '#, #, and ## are numbers in this example'
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

此示例将所指定的\d数字将以#字符替换

我们可以改变我们的正则模式来搜索仅两位数字。

For example:

SELECT REGEXP_REPLACE ('2, 5, and 10 are numbers in this example', '(\d)(\d)', '#')
FROM dual;

Result: '2, 5, and # are numbers in this example'
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

这个例子将替换具有两个数字并排指定的(\d)(\d)模式。在这种情况下,它将跳过2和5个数字值和用#字符替换10。



还有一个问题:就是同replace,只有前两个参数是什么意思

具体说明

select regexp_replace('01111','^0') from dual;

结果是

1111
含义同replace函数。

分享到:
评论

相关推荐

    mysql_regexp_replace.zip_oracle

    Oracle 的 `REGEXP_REPLACE` 函数接受三个参数:源字符串、正则表达式模式和替换字符串。例如,`REGEXP_REPLACE('test string', 't', 'T')` 将返回 'Test string',将所有小写 't' 替换为大写 'T'。Oracle 还提供了...

    Oracle分析函数基本概念和语法总结及Regexp_***用法

    Oracle分析函数是数据库管理系统Oracle中的一种高级查询工具,它们用于处理行集,...了解并熟练掌握Oracle分析函数和正则表达式函数,能显著提高在数据库管理和数据分析方面的效率,使得复杂的数据处理变得简单直观。

    oracle_10g正则表达式_REGEXP_LIKE_用法

    在Oracle 10g数据库系统中,正则表达式的引入为数据检索提供了更为灵活和强大...此外,结合其他正则表达式相关的函数,如`REGEXP_INSTR`, `REGEXP_SUBSTR`, 和`REGEXP_REPLACE`,可以实现更复杂的数据清洗和转换任务。

    mysql-udf-regexp:实现REGEXP _...()函数MySQL用户定义函数模块

    mysql-udf-regexp 该程序包将正则表达式函数用作MySQL用户定义函数(UDF)。 该软件包实现的功能是: REGEXP_LIKE(text, pattern [, mode]) REGEXP_SUBSTR(text, pattern [,... 这些功能在名称上与Oracle SQL函数

    oracle正则表达式regexp_like的用法详解

    REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE ...

    Oracle正则表达式函数全面解析

    本文将详细介绍Oracle数据库中支持的四个主要正则表达式函数:`REGEXP_LIKE`、`REGEXP_INSTR`、`REGEXP_SUBSTR`和`REGEXP_REPLACE`,以及如何使用POSIX正则表达式。 #### 二、Oracle正则表达式基础 ##### 1. POSIX...

    解决Oracle没有WM_CONCAT函数.zip

    SELECT REGEXP_REPLACE(SYS_CONNECT_BY_PATH(column, ','), '^,', '') AS aggregated_column FROM (SELECT column, CONNECT_BY_ROOT rowid as rid FROM table) START WITH rid = (SELECT MIN(rowid) FROM table) ...

    Oracle正则表达式函数

    Oracle数据库系统提供了强大的正则表达式功能,这些功能主要通过一系列内置函数来实现,使得数据库查询和数据处理变得更加灵活和高效。在Oracle中,正则表达式主要用于模式匹配和字符串操作,广泛应用于数据验证、...

    oracle字符串替换

    ### Oracle字符串替换:使用REGEXP_REPLACE函数 在Oracle数据库中,对字符串进行处理是一项非常常见的需求,尤其是在数据清洗、格式转换等场景下。本文将详细介绍如何利用`REGEXP_REPLACE`函数来实现字符串替换功能...

    sql中判断某列是否为数字.docx

    Oracle 中的支持正则表达式的函数主要有四个:REGEXP_LIKE、REGEXP_REPLACE、REGEXP_INSTR 和 REGEXP_SUBSTR。这四个函数在用法上与 Oracle SQL 函数 LIKE、INSTR、SUBSTR 和 REPLACE 用法相同,但它们使用 POSIX ...

    Oracle 总结的正则表达式带有详细的例子与解释

    `REGEXP_REPLACE(srcstr, pattern, replacement [, position [, occurrence [, match_option]]])`:用`replacement`替换`srcstr`中符合`pattern`的部分,`position`、`occurrence`和`match_option`选项与之前函数...

    Oracle拆分字符串,字符串分割的函数

    在Oracle数据库中,处理字符串是常见的操作之一,尤其是在数据分析或数据清洗的过程中。有时我们需要将一个长字符串分割成多个部分,以便进行进一步的操作。Oracle提供了一些内置的函数来帮助我们完成这个任务。本篇...

    Oracle正则表达式详解(用法+实例)

    Oracle 10g 引入了一系列新的函数来支持正则表达式的使用,包括 `REGEXP_LIKE`、`REGEXP_INSTR`、`REGEXP_SUBSTR` 和 `REGEXP_REPLACE`。这些函数的使用方式类似于传统的 SQL 函数 `LIKE`、`INSTR`、`SUBSTR` 和 `...

    oracle正则表达式.ppt

    Oracle支持四种与正则表达式相关的函数:REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR和REGEXP_REPLACE。 1. REGEXP_LIKE:此函数用于执行基于正则表达式的模糊匹配。与传统的LIKE操作符不同,它能处理更复杂的匹配...

    oracle 数字金额转为汉字大写

    `readme.txt`文件可能会包含使用和注意事项,比如提醒用户在调用函数前确保已经正确创建了函数,或者在使用过程中需要注意的精度问题和性能优化建议。 总结来说,Oracle中将数字金额转换为汉字大写的过程涉及自定义...

    Oracle 正则表达式介绍

    在Oracle 10g版本中,正则表达式得到了进一步的支持,引入了新的SQL操作符REGEXP_LIKE以及与之相关的函数REGEXP_INSTR、REGEXP_SUBSTR和REGEXP_REPLACE。 1. 正则表达式的基本概念: 正则表达式由字符字面量和元...

    Oracle_adv.zip_Oracle進階_oracle

    在SQL查询中,我们可以使用`REGEXP_LIKE`函数结合正则表达式进行数据过滤,或者使用`REGEXP_REPLACE`进行字符串替换操作。 二、Oracle分析函数 Oracle分析函数是在SQL查询中处理分组数据的强大工具,它们可以在...

    oracle将字符串转为number

    `REGEXP_REPLACE`函数可以用来匹配和替换字符串中的模式。它非常适用于需要根据正则表达式模式来处理字符串的情况。与`TRANSLATE`相比,它可以更灵活地处理复杂情况。 - **`REGEXP_REPLACE`语法**:`REGEXP_REPLACE...

    Oracle正则表达式函数介绍.rar

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的功能来处理和操作数据,其中包括对正则表达式的支持。正则表达式是一种强大的文本匹配工具,能够帮助我们进行复杂的字符串搜索、替换和验证。在...

Global site tag (gtag.js) - Google Analytics