pandas和SQL数据分析实战

https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&shareId=400000000398149

举例

hive中 regexp_replace的用法,替换特殊字符问题

数据仓库中有的字段不合格,有特殊字符,比如换行符。

poi_name
\n19013
\n12013

怎么把换行符替换掉呢?

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-StringOperators

regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)

Returns the string resulting from replacing all substrings in INITIAL_STRING that match the java regular expression syntax defined in PATTERN with instances of REPLACEMENT. For example, regexp_replace("foobar", "oo|ar", "") returns 'fb.' Note that some care is necessary in using predefined character classes: using '\s' as the second argument will match the letter s; '\s' is necessary to match whitespace, etc.

官网说用两个反斜杠代替一个,即一个反斜杠用来转义。

实践了一下,不行,得4个

select regexp_replace(poi_name,'\\\\n','') 

poi_name
19013
12013

  

转自

https://blog.csdn.net/weixin_43767002/article/details/85605220

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:

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

实验 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;

  

附:正则表达式(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:] 标点符号 ,.?’

python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制)

网易云观看地址

https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share

扫二维码,关注博主主页,学习更多Python知识

regexp_replace的更多相关文章

  1. Oracle中使用REGEXP_SUBSTR,regexp_replace函数

    REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr ...

  2. Oracle 正则表达式函数-REGEXP_REPLACE 使用例子

    原文在这: 戳 REGEXP_REPLACE 6个参数 第一个是输入的字符串 第二个是正则表达式 第三个是替换的字符 第四个是标识从第几个字符开始正则表达式匹配.(默认为1) 第五个是标识第几个匹配组 ...

  3. Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace

    Oracle正则表达式函数:regexp_like.regexp_substr.regexp_instr.regexp_replace   --去掉所有特殊字符,只剩字母  SELECT REGEXP ...

  4. PLSQL_基础系列12_替换函数用法REPLACE / TRANSLATE / REGEXP_REPLACE

    20150806 Created By BaoXinjian

  5. [每日一题] OCP1z0-047 :2013-08-01 正则表达式--- REGEXP_REPLACE 函数

    这题又是考正则表达式,我们先根据题意,操作如下: hr@OCM> col "PHONE NUMBER" for a50 hr@OCM> SELECT phone_num ...

  6. Oracle 正则表达式函数-REGEXP_REPLACE

    背景 当初写oracle的一个存储过程,以前不知道sql里也有正则表达式,关于正则表达式教程很多了,这里只是记录下Oracle也有这个功能,下次再有类似需求用这个处理的确方便很多. 想起存储过程,就想 ...

  7. ORACLE中的字符串替换 replce、regexp_replace 和 translate

    一.语法 replace(str_source,str1,str2)  把 str_source 中 str1 字符串替换为 str2 字符串,当 str2 为 null 或'' 时,与下个作用相同 ...

  8. hive中 regexp_replace的用法,替换特殊字符问题

    数据仓库中有的字段不合格,有特殊字符,比如换行符. poi_name \n19013 \n12013 怎么把换行符替换掉呢? https://cwiki.apache.org/confluence/d ...

  9. Oracle学习笔记:使用replace、regexp_replace实现字符替换、姓名脱敏

    在数据库中难免会遇到需要对数据进行脱敏的操作,无论是姓名,还是身份证号. 最近遇到一个需求,需要对姓名进行脱敏: 姓名长度为2,替换为姓+*: 姓名长度为3,替换中间字符为*: 姓名长度为4,替换第3 ...

  10. ORACLE学习笔记 translate,REGEXP_replace

    从一串文本中提取数字: select translate('用纸箱包200/箱',REGEXP_replace('用纸箱包200PCS/箱','[0-9]',''),' ')from dual; tr ...

随机推荐

  1. Maven基础。

    ---恢复内容开始--- Maven: 1.概念. * maven 是一个项目管理工具. * maven的作用. 1.jar包.依赖管理.将jar包放在jar包仓库(pom.xml),不需要每个项目都 ...

  2. mysqldump 备份

    1.  直接备份某个库或表 ,或多个库多个表mysqldump -uroot -pPassword [database name] > [dump file]mysqldump -uroot - ...

  3. OSI&TCP/IP模型

    OSI模型 OSI协议 基于OSI模型异构网络主机之间通信的协议 1. 应用层 不同的应用程序所在层,如邮件程序,web程序 2. 表示层 不同的文件类型如图片,视频等 3. 会话层 决定是否建立与其 ...

  4. linux设备驱动程序--hello-world

    linux字符设备驱动程序--hello_world 基于4.14内核, beagleBone green平台 PC端的设备驱动程序 有过电脑使用经验的人都知道,当我们将外部硬件设备比如鼠标键盘插入到 ...

  5. python爬取站长之家植物图片

    from lxml import etree from urllib import request import urllib.parse import time import os def hand ...

  6. Fire Balls 03—— 多个圆环以及圆环的变速变向

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  7. loadrunner中web_submit_data与web_submit_form区别

    以loadrunner自带的订票系统为例 当选择红框选中的模式时,所录脚本如下:回放时可以正常回放,登录成功 选另一种所录脚本如下:回放时登录不成功,session失效, 其中web_submit_f ...

  8. 开发基础之牛逼哄哄的 Lambda 表达式,简洁优雅就是生产力

    什么是Lambda? 我们知道,对于一个Java变量,我们可以赋给其一个“值”. 如果你想把“一块代码”赋给一个Java变量,应该怎么做呢? 比如,我想把右边那块代码,赋给一个叫做aBlockOfCo ...

  9. selenium安装

    pip安装 pqi优化pip下载速度 pip install selenium pip install --upgrade selenium pip show selenium 离线安装 官网下载se ...

  10. RabbitMQ 的 docker 镜像使用

    RabbitMQ 的 docker 镜像使用 1.下载镜像(management版本的才带有web管理界面) docker pull rabbitmq:3.7.18-management 2.创建容器 ...