python正则表达式

python正则表达式

1. 正则简介

正则表达式 - 正则表达式是一个让字符串复杂问题变的简单的工具
写正则表达式的主要工作:用正则符号描述清楚相关字符的规则。

python正则表达方式:r’正则表达式’
js的正则:/正则表达式/

re模块是Python提供的专门用来支撑正则表达式的一个模块
fullmatch函数:fullmatch(正则表达式,字符串) - 让正则表达式和指定字符串进行完全匹配,如果匹配失败则返回None

2. 匹配符号

2.1 普通字符(普通符号)
在正则中除了有特殊功能或者特殊意义以外的符号
普通字符在正则中表示这个符号的本身。

# 匹配一个字符串有三个字符分别是a\b和c
re_str = r'abc'
print(fullmatch(re_str, 'abc'))

2.2 - 匹配任意一个字符
注意:一个.只能匹配一个任意字符

re_str = r'a.c'
print(fullmatch(re_str, 'abc'))
print(fullmatch(re_str, 'a-c'))

re_str = r'abc...'
print(fullmatch(re_str, 'abcm.p'))
print(fullmatch(re_str, 'abcfg/'))

2.3 \d - 匹配任意一个数字字符

re_str = r'a\db\dc'
print(fullmatch(re_str, 'a1b2c'))

2.4 \s - 匹配任意一个空白字符
空白字符:空格、回车(\n)、制表符(\t)

re_str = r'a\sb'
print(fullmatch(re_str, 'a b'))
print(fullmatch(re_str, 'a\nb'))
print(fullmatch(re_str, 'a\tb'))

2.5 \w - 匹配任意一个字母、数字或者下划线 (不好用)

2.6 反斜杠大写字母的意义和相对应的反斜杠小写字母是反过来的
\D - 匹配任意一个非数字字符
\S - 匹配任意一个非空白字符

print(fullmatch(r'a\Sb\D', 'a>b='))
print(fullmatch(r'a\Sb\D', 'a b='))  # None
print(fullmatch(r'a\Sb\D', 'a>b0'))  # None

2.7 [字符集] - 匹配字符集中任意一个字符
注意:一个[]只能匹配一个字符
[多个普通字符] - 例如[abc]:可以匹配a或者b或者c
[包含\开头的特殊符号的字符集] - 例如:[\dabc],可以匹配任意数字或者a或者b或者c
[包含减号在两个字符之间的字符集] - 这个时候的减号表示谁到谁(注意:减号前面的字符编码必须小于后面的)
例如:[a-z] - 匹配任意一个小写字母
[a-d] - 匹配a、b、c、d中任意一个字符
[A-Z] - 匹配任意一个大写字母
[1-9] - 匹配1-9中任意一个数字
[\u4e00-\u9fa5] - 匹配任意一个中文字符
[a-zA-Z]、[A-Za-z] - 匹配任意一个字母
[a-z123] - 匹配任意一个小写字母或者1,2,3,
[a-z\d] - 匹配任意一个小写字母或者任意一个数字

re_str = r'a[xym]b'
print(fullmatch(re_str, 'axb'))
print(fullmatch(re_str, 'amb'))

re_str = r'a[16]b'
print(fullmatch(re_str, 'a1b'))
print(fullmatch(re_str, 'a6b'))

re_str = r'a[a\db]b'
print(fullmatch(re_str, 'a5b'))
print(fullmatch(re_str, 'abb'))

2.8 [ ^字符集] - 匹配任意一个不在字符集任意一个字符
[ ^abc] - 匹配除了a、b、c以外的任意一个字符
[ ^a-z] - 匹配除了小写字母以外的任意一个字符
注意:[]中的^和-只有放在指定位置的时候才有特殊功能,否则就只是表示一个普通字符

3. 检测类符号

检测类符号的存在不影响被匹配的字符串的长度,它的作用是在匹配成功的前提下检测符号所在的位置是否符号要求
检测类符号的用法:先去掉检测类符号,看是否能匹配成功,如果失败,整个正则失败,如果成功再看检测类符号所在的位置是否符号要求

3.1 \b - 检测是否是单词边界

单词边界 - 能够区分出两个不同单词的符号都属于单词边界,列如:空白、标点符号、字符串开头、字符串结尾

re_str = r'abc\b123'
print(fullmatch(re_str, 'abc123'))  # None

re_str = r'abc,\b123'
print(fullm
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值