oracle 正则过滤特殊字符_正则表达式 提取数据

正则表达式

1. 正则表达式概念

正则表达式就是记录文本规则的代码

2. 正则表达式的样子

0\d{2}-\d{8} 这个就是一个正则表达式,表达的意思是匹配的是座机号码

3. 正则表达式的特点

  • 正则表达式的语法很令人头疼,可读性差

  • 正则表达式通用行很强,能够适用于很多编程语言

1. re模块的使用过程

在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re

    # 导入re模块    import re    # 使用match方法进行匹配操作    result = re.match(正则表达式,要匹配的字符串)    # 如果上一步匹配到数据的话,可以使用group方法来提取数据    result.group()

2. re模块示例

    #coding=utf-8    import re    result = re.match("hello","hello.cn")    result.group()

运行结果为:

hello
定义

用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑。

常见语法

字符

语法说明表达式案例完整匹配字符串
一般字符匹配自身abcabc
.匹配任意除换行符\n外的字符。在DOTALL模式中也能匹配换行符a.cabc
\转义字符,使后一个字符表示字符本身。a.ca.c
[...]选取字符范围a[bcd]eabe 或 ace 或 ade

预定义字符集(可以写在字符集[...]中)

语法说明表达式案例完整匹配字符串
\d数字:[0-9]a\dca1c
\D非数字:0-9a\Dcabc
\s空白字符:[\t\r\n\f\v]a\sca c
\S非空白字符:\t\r\n\f\va\Scabc
\w单词字符:[A-Za-z0-9_]a\wcabc
\W非单词字符:A-Za-z0-9_a\Wca c

数量词(用在字符或(...)之后)

语法说明表达式案例完整匹配字符串
*匹配前一个字符0次或无限次。abc*abccc
+匹配前一个字符1次或无限次。abc+abccc
?匹配前一个字符0次或1次。abc?abc 或 ab
{m}匹配前一个字符m次。ab{2}cabbc

匹配单个字符

示例1:

#coding=utf-8import reret = re.match(".","M")print(ret.group())ret = re.match("t.o","too")print(ret.group())ret = re.match("t.o","two")print(ret.group())

运行结果:

Mtootwo

示例2:[]

import re# 如果hello的首字符小写,那么正则表达式需要小写的hret = re.match("h","hello Python")print(ret.group())# 如果hello的首字符大写,那么正则表达式需要大写的Hret = re.match("H","Hello Python")print(ret.group())# 大小写h都可以的情况ret = re.match("[hH]","hello Python")print(ret.group())ret = re.match("[hH]","Hello Python")print(ret.group())ret = re.match("[hH]ello Python","Hello Python")print(ret.group())# 匹配0到9第一种写法ret = re.match("[0123456789]Hello Python","7Hello Python")print(ret.group())# 匹配0到9第二种写法ret = re.match("[0-9]Hello Python","7Hello Python")print(ret.group())ret = re.match("[0-35-9]Hello Python","7Hello Python")print(ret.group())# 下面这个正则不能够匹配到数字4,因此ret为Noneret = re.match("[0-35-9]Hello Python","4Hello Python")# print(ret.group())

运行结果:

hHhHHello Python7Hello Python7Hello Python7Hello Python

示例3:\d

import re# 普通的匹配方式ret = re.match("嫦娥1号","嫦娥1号发射成功")print(ret.group())ret = re.match("嫦娥2号","嫦娥2号发射成功")print(ret.group())ret = re.match("嫦娥3号","嫦娥3号发射成功")print(ret.group())# 使用\d进行匹配ret = re.match("嫦娥\d号","嫦娥1号发射成功")print(ret.group())ret = re.match("嫦娥\d号","嫦娥2号发射成功")print(ret.group())ret = re.match("嫦娥\d号","嫦娥3号发射成功")print(ret.group())

运行结果:

嫦娥1号嫦娥2号嫦娥3号嫦娥1号嫦娥2号嫦娥3号

示例4:\D

import rematch_obj = re.match("\D", "f")if match_obj:    # 获取匹配结果    print(match_obj.group())else:    print("匹配失败")

运行结果:

f

示例5:\s

import re# 空格属于空白字符match_obj = re.match("hello\sworld", "hello world")if match_obj:    result = match_obj.group()    print(result)else:    print("匹配失败")# \t 属于空白字符match_obj = re.match("hello\sworld", "hello\tworld")if match_obj:    result = match_obj.group()    print(result)else:    print("匹配失败")

运行结果:

hello worldhello world

示例6:\S

import rematch_obj = re.match("hello\Sworld", "hello&world")if match_obj:    result = match_obj.group()    print(result)else:    print("匹配失败")match_obj = re.match("hello\Sworld", "hello$world")if match_obj:    result = match_obj.group()    print(result)else:    print("匹配失败")

运行结果:

hello&world  hello$world

示例7:\w

import re# 匹配非特殊字符中的一位match_obj = re.match("\w", "A")if match_obj:    # 获取匹配结果    print(match_obj.group())else:    print("匹配失败")

执行结果:

A

示例8:\W

# 匹配特殊字符中的一位match_obj = re.match("\W", "&")if match_obj:    # 获取匹配结果    print(match_obj.group())else:    print("匹配失败")

执行结果:

&

想要了解更多关于IT相关的信息,欢迎关注本公众号

eb4ca2f0ca4ca6f66bfa4314c27f280a.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值