python正则表达式

1. 什么是正则表达式?

(1)正则表达式由普通字符和元字符组成,通过此模式,用来匹配特定的内容。

(2)普通字符:包括大小写字母、数字。

(3)元字符:是一些特殊字符,这些字符并不表示字面上的含义,而会被解释为一些特定的含义。

(4)正则表达式区分大小写。

2.元字符

(1)匹配字符

.: 匹配任意单个字符
[]: 匹配指定范围内的任意单个字符
[0-9]: 数字
[a-z]: 小写字母
[A-Z]: 大写字母
[^ ]: 匹配指定范围外的任意单个字符(出现在[]中的^代表排除)

(2)匹配次数

*: 匹配前面的一个字符任意次,包括0次
+: 匹配其前面的字符1次或多次
?: 匹配其前面的字符1次或0次
{m, n}: 匹配其前面的字符至少m次,至多n次。

(3)匹配位置

^:行首
$:行尾
( ):分组, 作为一个整体,\1引用第一个小括号内匹配的内容,以此类推\2, \3
A|B:A整体 或者 B整体

(4)特殊符号

\d 匹配任何数字
\D 匹配非数字字符
\w 匹配字母、数字与下划线
\W 匹配不是字母、数字与下划线的字符
\s 匹配空白字符
\S 匹配非空白字符
\b 匹配单词的开始和结束
\B 匹配不是单词的开始和结束的位置

3.正则表达式模块re

正则表达式字符串: r’正则表达式’

(1)常用方法
compile(): 编译正则表达式
findall(): 返回匹配列表(如果有小括号, 返回小括号内正则匹配的内容)
match(): 从字符串的开头对模式进行匹配,如果成功,则返回一个对象, 如果失败, 则返回None。

>>> import re
>>> m = re.match('foo', 'foo')
>>> m
<_sre.SRE_Match object at 0x7f77fa6af4a8>
>>> m.group()
'foo'
>>> m = re.match('foo', 'bar')
>>> m
>>> m.group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

search(): (在字符串任意位置)如果搜索到成功的匹配对象, 否则返回None。

>>> m = re.match('foo', 'seafood')
>>> m
>>> m.group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
>>> m = re.search('foo', 'seafood')
>>> m
<_sre.SRE_Match object at 0x7f77fa6af4a8>
>>> m.group()
'foo'

split(): 正则表达式作为分隔符把字符串分隔为一个列表,返回列表
sub()/subn(): 将某字符串中匹配正则表达式模式的部分进行替换。

(2)match()/search() 返回对象的方法
group():返回整个正则表达式匹配的字符串,同group(0)。
group(i): 正则表达式中第i个”()”括起来部分匹配的内容
groups():返回被整个正则表达式匹配的字符串组成的元组
start():返回匹配开始的位置
end():返回匹配结束的位置
span():返回一个元组包含匹配(开始, 结束)的位置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值