正则表达式

正则表达式

概念

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

应用场景

1、登录、注册、验证手机号码等

2、爬虫

3、数据筛选

import re  # 导入re模块
regex = ""
re.match(regex,phone)
# 不符合规则返回none
# 符合规则返回对应的对象

案例:
phone = "12345678901"
regex = "^1[35789]\d{9}$"  # {}=表示还有几个数字

 

字符集

下面的是一些常用的字符集,更加详细的就可以自行百度。

正则表达式

 

数量集

x*     匹配0-n个

x+    匹配1-n个

x?     匹配0个或1个

x{m,n}   匹配m-n个

x{m,}  匹配至少m个

x{m}   匹配m个

 

边界符

边界符的作用就是用特定的符号来表示匹配的边界。

$ :结束符
^ :起始符
    www.baidu.com
    123456www.baidu.com

1、输入数据,匹配0-100的数据,0不能是开头
regex = "^[1-9]\d$|^[0-9]$|^100$"  # |是或符号,它的作用:匹配|左右两边的规则,满足其中一个即可
import re
res = regex = "^[1-9]\d$|^[0-9]$|^100$" 

m = re.match(res,"00")
print(m)

 

全匹配

fullmatch:不需要添加边界符,就是按照规则匹配

match:"^1[35789]\d{9}$"

fullmatch:"1[35789]\d{9}"

 

替换

sub:根据规则替换,返回新的字符串数据
hello123world456你好
hello*world*你好

import re
say = "hello1245610233world456你好"
regex = "\d+"
th = "**"
newsay = re.sub(regex, th, say)
print(newsay)

 

查询

search:根据规则匹配查询数据

只会查询第一个符合规则的数据

findall,查询所有:根据规则查询所有数据,返回列表

 

PS:[\u4e00-\u9fa5],是中文字符的范围。

‘‘‘
获取姓名
"路飞a索隆12E娜美A933乌索普"
[路飞,索隆,娜美,乌索普]
‘‘‘
    
import re

s = "路飞a索隆12E娜美A933乌索普"
res1 = [\u4e00-\u9fa5]+
m1 = re.findall(res1,s)
print(m1)

 

正则表达式

上一篇:LeetCode题目解答


下一篇:ZooKeeper监听服务器节点动态上下线