精华内容
下载资源
问答
  • regexp_replace

    2019-08-07 10:38:37
    regexp_replace正则替换 建表语句 create table t( dt string ) 插入数据 insert into t values ("2013-03-21"),("2013-03-22"),("2013-03-23"),("2013-03-24"),("2013-03-25"); 测试 select regexp_replace(dt,...

    regexp_replace正则替换

    建表语句

    create table t(
    	dt string
    )
    

    插入数据

    insert into t values ("2013-03-21"),("2013-03-22"),("2013-03-23"),("2013-03-24"),("2013-03-25");
    

    测试

    select regexp_replace(dt,"-","") from t;
    dt  需要操作的字段    "-" 要替换内容    "" 替换成的内容
    

    在这里插入图片描述

    展开全文
  • REGEXP_REPLACE

    2009-04-11 19:25:03
    REGEXP_REPLACE SyntaxDescription of the illustration regexp_replace.gif Purpose REGEXP_REPLACE extends the func...

    REGEXP_REPLACE

    Syntax

    De.ion of regexp_replace.gif follows
    Description of the illustration regexp_replace.gif

    Purpose

    REGEXP_REPLACE extends the functionality of the REPLACE function by letting you search a string for a regular expression pattern. By default, the function returns source_char with every occurrence of the regular expression pattern replaced with replace_string. The string returned is in the same character set as source_char. The function returns VARCHAR2 if the first argument is not a LOB and returns CLOB if the first argument is a LOB.

    This function complies with the POSIX regular expression standard and the Unicode Regular Expression Guidelines. For more information, please refer to Appendix C, "Oracle Regular Expression Support".

    • source_char is a character expression that serves as the search value. It is commonly a character column and can be of any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB or NCLOB.

    • pattern is the regular expression. It is usually a text literal and can be of any of the datatypes CHAR, VARCHAR2, NCHAR, or NVARCHAR2. It can contain up to 512 bytes. If the datatype of pattern is different from the datatype of source_char, Oracle Database converts pattern to the datatype of source_char. For a listing of the operators you can specify in pattern, please refer to Appendix C, "Oracle Regular Expression Support".

    • replace_string can be of any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. If replace_string is a CLOB or NCLOB, then Oracle truncates replace_string to 32K. The replace_string can contain up to 500 backreferences to subexpressions in the form. \n, where n is a number from 1 to 9. If n is the backslash character in replace_string, then you must precede it with the escape character (\\). For more information on backreference expressions, please refer to the notes to "Oracle Regular Expression Support", Table C-1.

    • position is a positive integer indicating the character of source_char where Oracle should begin the search. The default is 1, meaning that Oracle begins the search at the first character of source_char.

    • occurrence is a nonnegative integer indicating the occurrence of the replace operation:

      • If you specify 0, then Oracle replaces all occurrences of the match.

      • If you specify a positive integer n, then Oracle replaces the nth occurrence.

    • match_parameter is a text literal that lets you change the default matching behavior. of the function. This argument affects only the matching process and has no effect on replace_string. You can specify one or more of the following values for match_parameter:

      • 'i' specifies case-insensitive matching.

      • 'c' specifies case-sensitive matching.

      • 'n' allows the period (.), which is the match-any-character character, to match the newline character. If you omit this parameter, the period does not match the newline character.

      • 'm' treats the source string as multiple lines. Oracle interprets ^ and $ as the start and end, respectively, of any line anywhere in the source string, rather than only at the start or end of the entire source string. If you omit this parameter, Oracle treats the source string as a single line.

      • 'x' ignores whitespace characters. By default, whitespace characters match themselves.

      If you specify multiple contradictory values, Oracle uses the last value. For example, if you specify 'ic', then Oracle uses case-sensitive matching. If you specify a character other than those shown above, then Oracle returns an error.

      If you omit match_parameter, then:

    Examples

    The following example examines phone_number, looking for the pattern xxx.xxx.xxxx. Oracle reformats this pattern with (xxx) xxx-xxxx.

    SELECT
      REGEXP_REPLACE(phone_number,
                     '([[:digit:]]{3})\.([[:digit:]]{3})\.([[:digit:]]{4})',
                     '(\1) \2-\3') "REGEXP_REPLACE"
      FROM employees;
    
    REGEXP_REPLACE
    --------------------------------------------------------------------------------
    (515) 123-4567
    (515) 123-4568
    (515) 123-4569
    (590) 423-4567
    . . .
    
    

    The following example examines country_name. Oracle puts a space after each non-null character in the string.

    SELECT
      REGEXP_REPLACE(country_name, '(.)', '\1 ') "REGEXP_REPLACE"
      FROM countries;
    
    REGEXP_REPLACE
    --------------------------------------------------------------------------------
    A r g e n t i n a
    A u s t r a l i a
    B e l g i u m
    B r a z i l
    C a n a d a
    . . .
    
    

    The following example examines the string, looking for two or more spaces. Oracle replaces each occurrence of two or more spaces with a single space.

    SELECT
      REGEXP_REPLACE('500   Oracle     Parkway,    Redwood  Shores, CA',
                     '( ){2,}', ' ') "REGEXP_REPLACE"
      FROM DUAL;
    
    REGEXP_REPLACE
    --------------------------------------
    500 Oracle Parkway, Redwood Shores, CA
    

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21220558/viewspace-588688/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/21220558/viewspace-588688/

    展开全文
  • REGEXP_REPLACE REGEXP_EXTRACT LIKE 语法1: A LIKE B 语法2: LIKE(A, B) 操作类型: strings 返回类型: boolean或null 描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B的正则语法,则...

    目录

    LIKE

    RLIKE

    REGEXP

    REGEXP_REPLACE

    REGEXP_EXTRACT


    LIKE

    语法1: A LIKE B    
    语法2: LIKE(A, B)
    操作类型: strings
    返回类型: boolean或null
    描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B的正则语法,则为TRUE;否则为FALSE。B中字符"_"表示任意单个字符,而字符"%"表示任意数量的字符。

    hive> select 'football' like '%ba';
    OK
    false
    
    
    hive> select 'football' like '%ba%';
    OK
    true
    
    
    hive> select 'football' like '__otba%';
    OK
    true
    
    
    hive> select like('football', '__otba%');
    OK
    true

     

    RLIKE

    语法1: A RLIKE B
    语法2: RLIKE(A, B)
    操作类型: strings
    返回类型: boolean或null
    描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合JAVA正则表达式B的正则语法,则为TRUE;否则为FALSE。

    hive> select 'football' rlike 'ba';
    OK
    true
    
    
    hive> select 'football' rlike '^footba';
    OK
    true
    
    
    hive> select rlike('football', 'ba');
    OK
    true
    Java正则: 
    "." 任意单个字符
    "*" 匹配前面的字符0次或多次
    "+" 匹配前面的字符1次或多次
    "?" 匹配前面的字符0次或1次
    "\d" 等于 [0-9],使用的时候写成'\\d'
    "\D" 等于 [^0-9],使用的时候写成'\\D'
    
    hive> select 'does' rlike 'do(es)?';
    OK
    true
    
    hive> select '\\';
    OK
    \
    
    hive> select '2314' rlike '\\d+';
    OK
    true

     

    REGEXP

    语法1: A REGEXP B
    语法2: REGEXP(A, B)
    操作类型: strings
    返回类型: boolean或null
    描述: 功能与RLIKE相同

    hive> select 'football' regexp 'ba';
    OK
    true
    
    
    hive> select 'football' regexp '^footba';
    OK
    true
    
    
    hive> select regexp('football', 'ba');
    OK
    true
    
    
    语法: regexp_replace(string A, string B, string C)
    操作类型: strings
    返回值: string
    说明: 将字符串A中的符合java正则表达式B的部分替换为C。
    
    hive> select regexp_replace('h234ney', '\\d+', 'o');
    OK
    honey

     

    REGEXP_REPLACE

    语法: regexp_replace(string A, string B, string C)
    操作类型: strings
    返回值: string
    说明: 将字符串A中的符合java正则表达式B的部分替换为C。

    hive> select regexp_replace('h234ney', '\\d+', 'o');
    OK
    honey
    

     

    REGEXP_EXTRACT

    语法: regexp_extract(string A, string pattern, int index)
    返回值: string
    说明:将字符串A按照pattern正则表达式的规则拆分,返回index指定的字符,index从1开始计。

    hive> select regexp_extract('honeymoon', 'hon(.*?)(moon)', 0);
    OK
    honeymoon
    
    
    hive> select regexp_extract('honeymoon', 'hon(.*?)(moon)', 1);
    OK
    ey
    
    
    hive> select regexp_extract('honeymoon', 'hon(.*?)(moon)', 2);
    OK
    moon

     

     

     

     

     

    展开全文
  • Oracle函数详解:regexp_replace

    万次阅读 2019-01-02 15:31:13
    regexp_replace: 官方内容: 官方语法: 官方说明: https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions130.htm regexp_replace函数是replace函数的扩展函数,用于通过正则表达式来...

    regexp_replace:

    1. 官方内容:
      官方语法:
      syntax
      官方说明:
      purpose

    https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions130.htm

    regexp_replace函数是replace函数的扩展函数,用于通过正则表达式来进行匹配替换,默认情况下,每次匹配到的正则,都替换为replace_string,返回的字符串与source_char字符集相同。如果source_char为非LOB类型,则返回varchar2数据类型,如果为LOB类型,则返回CLOB类型,该函数符合POSIX正则和Unicode正则。

    • source_char是一个用作搜索的值,它通常是一种字符列,可以以下是任何数据类型CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB、NCLOB

    • pattern是正则表达式,可以是以下任意数据类型CHAR、VARCHAR2、NCHAR、NVARCHAR2。最多可包含512个字节。如果pattern数据类型与source_char异同,则Oracle将转换pattern的数据类型与source_char的一致。

    • replace_string可以是以下任意数据类型CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB、NCLOB。如果replace_string是CLOB或NCLOB,则Oracle截断replace_string为32K。replace_string可含有多达500个反向引用作为子表达式,其形式为\n,n为数字1~9。如果n在replace_string中为反斜线字符,则需使用转移字符在其前面(\)

    • position是一个正整数,表示在source_char中Oracle应该开始搜索的字符。默认值为1,表示Oracle以第一个字符开始搜索。

    • occurrence是一个非负整数,表示替换动作的发生,如果为0,则Oracle将替换所有匹配项,如果为正整数n,则Oracle将替换第n个匹配项。

    • match_parameter是一个文本文件,用于更改匹配行为,仅影响匹配过程,并不影响replace_string。可以指定以下一个或多个值:
      ‘i’指定不区分大小写的匹配
      ‘c’区分大小写的匹配
      ‘n’允许‘.’(句点,配置任意字符)匹配换行符,如果省略此此参数,则句点与换行符不匹配
      ‘m’将源字符串视为多行。Oracle将源字符串中的^或$视为行首或行尾,如果省略此参数,Oracle将源字符串视为单行
      ‘x’忽略空格字符。默认情况下,空白字符与自身匹配。
      如果指定多个矛盾值,Oracle将使用最后一个值,例如指定’ic’,则Oracle使用区分大小写匹配,如果指定的不是上述字符,则返回错误
      如果省略match_parameter,则:
      1.默认的区分大小写由NLS_SORT参数的值决定
      2.句点‘.’与换行符不匹配
      3.源字符串视为单行

    以上中文内容为本人自行翻译,仅供参考

    1. 实验:
      以下开始通过实验验证各参数功能的使用
    • 简单使用:

    实验 1:

    SQL> select regexp_replace('0123456789','01234','0abc') from dual;
    

    将 01234 替换为 0abc
    regexp_replace-1

    完全匹配替换,并非对应替换
    regexp_replace-1-exp

    • 通过正则表达式匹配

    实验 2:

    SQL> select regexp_replace('01234abcde56789','[0-9]','*#') as new_str from dual;
    

    将配置到的数字替换为’ *# ’
    regexp_replace-2
    实验 3:

    SQL> select regexp_replace('01234abcde56789','[a-z]') as new_str from dual;
    

    将字符串中的字母去掉(小写字母)
    regexp_replace-3

    实验 4:

    SQL> select regexp_replace('+86 13811112222','(\+[0-9]{2})( )([0-9]{3})([0-9]{4})([0-9]{4})','(\1)\3-\4-\5') as new_str from dual;
    

    格式化手机号,将+86 13811112222转换为(+86)138-1111-2222,’+'在正则里有定义,需转义
    regexp_replace-4
    实验 5:

    SQL> select regexp_replace('01234abcde','(.)','\1 ') from dual;
    

    将字符用空格分隔
    regexp_replace-5

    • 其他参数
      实验 6:
    SQL>  select regexp_replace('#0a1b2C3D4e#','[0-9a-zA-Z]','*',4) as new_str from dual;
    

    从第4个值开始(包含第4个值),将所有数字、小写字母、大写字母替换为 ’ * ’
    regexp_replace-6
    实验7:

    SQL> select regexp_replace('#01234abcDEFe#','[0-9a-zA-Z]','*',4,6) as new_str from dual;
    

    从第4个值开始(包含第4个值),配置到第6个值时,将其替换为 ’ * ’
    regexp_replace-7

    实验 8 :

    SQL> select regexp_replace('abcdefg','[A-Z]','*',1,0,'i') from dual;
    

    通过i参数,不区分大小写进行匹配
    regexp_replace-8
    实验 9 :

    SQL> select regexp_replace('a
      2  b
      3  c
      4  d
      5  e
      6  f
      7  g','([a-z])(.)','\1',1,0,'n') from dual;
    

    通过n参数使 ’ . ’ 可以匹配换行符,实现合并
    regexp_replace-9

    实验 10:

    SQL> select regexp_replace('aa a a bb b b','a a','0') from dual;
    
    SQL> select regexp_replace('aa a a bb b b','a a','0',1,0,'x') from dual;
    

    对于第一条,匹配的是 ‘a a’
    regexp_replace-10-1
    对于第二条,匹配的是 ‘aa’
    regexp_replace-10-2

    由于对于参数 m(将源字符串视为多行)不了解,无法给予合适的说明实验,还望哪位大神出手相助一下

    附:正则表达式(POSIX标准扩展正则ERE)

    符号 释义
    \ 代表它自己、引用下一个字符、引入一个操作符、什么也不做
    * 匹配零或多个
    + 匹配一个或多个
    ? 匹配零个或一个
    | 或运算,其左右操作数均可以为一个子表达式
    ^ 默认情况下匹配字符串的结尾。在多行模式下,它匹配源字符串中任意位置的行尾
    $ 默认情况下匹配字符串的开头。在多行模式下,它匹配源字符串中任意位置的行头
    . 匹配字符集中支持的任意字符,NULL除外
    [ ] 用于指定匹配列表的括号表达式
    ( ) 对表达式进行分组,将其视为单个子表达式
    {m} 恰好匹配m次
    {m,} 匹配至少m次
    {m,n} 匹配至少m次,但不超过n次
    \n 反向引用表达式(n为1~9)匹配在\n之前的圆括号内包含的第n个子表达式
    [. .] 指定排序规则,可以是多字符元素(例如,西班牙语中的[.ch.])
    [: :] 指定字符类(例如,[:alpha:]),它匹配字符类中的任何字符
    [= =] 指定等价类。(例如,[=a=]匹配索引具有基本字母a的字符)

    https://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_posix001.htm#BABJDBHB
    以上资料来源于Oracle官网,由本人自行理解翻译,如若有误请指正

    [: :]字符类:

    [:xxxx:] 含义 范围
    [:space:] 包括换行符、空格、tab在内的空白字符 tab、空格
    [:blank:] 空格和tab tab、空格
    [:alpha:] 字母 a-z、A-Z
    [:alnum:] 字母和数字 a-z、A-Z、0-9
    [:digit:] 十进制数 0-9
    [:xdigit:] 十六进制数 0-9、a-f、A-F
    [:lower:] 小写字母 a-z
    [:upper:] 大写字母 A-Z
    [:cntrl:] 控制字符 ctrl、backspace等
    [:punct:] 标点符号 ,.?’
    展开全文
  • 文章目录1 概述2 匹配规则3 正则函数3.1 regexp_substr()3.2 regexp_instr()3.3 regexp_replace()3.4 regexp_like() 1 概述 1. 作用:处理字符时,很强大 2. 分类:与下列相似,当功能更加强大('支持正则表达式')...
  • Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace --去掉所有特殊字符,只剩字母 SELECTREGEXP_REPLACE('(Sam-Tomats123-=,.231+)','[^[:alpha:]]','')FROMdual; Sql...
  • regexp_replace函数 进阶

    2021-01-29 11:17:33
    –使用regexp_replace函数 –所有相连的|都做去重处理,只保留一个 select regexp_replace(’|||||||||a|||||b|||||c||||||’,’[|]{2,}’,’|’); –去掉最前面和最后一个,两个| select regexp_replace(’|||a||b|...
  • ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的...4,REGEXP_REPLACE :与REPLACE的功能相似 它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同, 但是它们...
  • <div><p>Added Oracle REGEXP_REPLACE support Added possibility to override functions in mode-specific classes</p><p>该提问来源于开源项目:h2database/h2database</p></div>
  • replace(字符串,要被替换的字符,替换后的字符) 如果替换后的内容为空,则变成删除作用了 ...regexp_replace函数是replace函数的扩展函数,用于通过正则表达式来进行匹配替换,默认情况下,每次匹配到的正则..
  • regexp_replace的使用非常灵活,且容易忘记,故做此笔记。 没有过多的介绍使用说明,只是根据个人理解列出很多相似案例,个人觉得通过对比,更容易理解其使用技巧。 命令格式: regexp_replace(source, pattern, ...
  • Hive中 正则表达式替换函数 regexp_replace和正则表达式解析函数 regexp_extract的用法总结 Hive中有很多字符串相关的函数,其中有两个与正则表达式相关的比较特殊,近期使用的时候做了较多的测试,做个笔记,鼓励...
  • mysql8 regexp_replace 实例

    2019-12-15 16:18:50
    mysql8 regexp_replace 实例: set contentTagIdMap = '1:7,2:8,3:9,4:10,'; set tag_id_tmp = '2'; set TAG_ID_new_str_tmp =regexp_replace(contentTagIdMap,concat('(.*,)?',tag_id_tmp,':([[:digit:]]+)(,.*)...
  • REGEXP_REPLACE 语法: regexp_replace(string A, string B, string C) 操作类型: strings 返回值: string 说明: 将字符串A中的符合java正则表达式B的部分替换为C。 REGEXP_REPLACE 6个参数 第一个是输入的字符串 第...
  • regexp_replace函数的使用方法

    千次阅读 2020-05-23 15:52:23
    regexp_replace语法 regexp_replace(source_char,pattern[,replace_string[,position[,occurrence[,maych_parameter]]]]); –source_char 搜索值的字符表达式。这通常是一个字符列,可以是任何数据类型char,...
  • 1.regexp_replace 先看下官网定义: 返回值 函数格式 解释 string regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT) Returns the string resulting...
  • 我正在尝试使用REGEXP_REPLACE与众不同,并返回0行.我已经在MySQLP v8.0中创建了一个测试表CREATE TABLE phone(id serial primary key,phone_number char(25));INSERT INTO phone (phone_number)VALUES ('(423) 330-...
  • PLSQL replace and regexp_replace

    千次阅读 2016-12-28 18:56:25
    语法: Replace(Source String, Search String, ...RegExp_replace(Source String, Pattern, Replace String, position, occurrence, match_parameter); Replace 用于普通替换某个字符(串) RegExp_replace
  • regexp_replace(1,2,3,4,5,6) 语法说明:1:字段 2:替换的字段 3:替换成什么 4:起始位置(默认从1开始) 5:替换的次数(0是无限次) 6:不区分大小写 【补充:】用regexp_replace来判断oracle中的某列为数字...
  • Hive, regexp_replace用法

    千次阅读 2019-09-27 10:24:13
    把INITIAL_STRING中与PATTERN相匹配的子串替换...regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT) Returns the string resulting from replacing all substrings in INITIAL_STRING...
  • oracle之replace和regexp_replace

    千次阅读 2018-01-03 11:37:27
    1 oracle中有replace和regexp_replace函数。这两个函数都是起到替换作用,还能起到删除作用。 如: 替换作用: update demo1 set name=replace(name,'xcl','sky') --将name字段中的xcl替换为sky update demo1 ...
  • Oracle使用正则表达式离不开...regexp_replace 看函数名称大概就能猜到有什么用了。 regexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单: regexp_substr 函数,和
  • Oracle Regexp_Replace

    2016-07-21 16:45:06
    SELECT regexp_replace('13,453,5', '([0-9]{2,3})', '''\1''') FROM dual; SQL> SELECT regexp_replace('13,453...
  • REGEXP_REPLACE让你搜索的字符串的正则表达式模式REPLACE函数的功能。默认情况下, 该函数返回source_char与replace_string取代了正则表达式模式的每个实例。 返回的字符串是在相同的字符集source_char。 语法 ...
  • ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法...
  • ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SUBSTR的功能相似 ...4,REGEXP_REPLACE :与REPLACE的功...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,178
精华内容 871
关键字:

regexp_replace