【python基础】正则表达式

摘自廖雪峰老师的博客

正则表达式中各字符代表含义

.:任意字符

*:任意个字符

+:至少一个字符

?:0或1个字符

{n}:n个字符

{n, m}:n~m个字符

\d:匹配一个数字

\w:匹配一个数字或字母

\s:匹配一个空格

^:表示行的开头,^\d表示以整数开头

$:表示行的结束,\d¥表示以整数结尾

正则表达式的作用

1.匹配字符串。如:用户输入了一组标签,可以用正则表达式判断是否与正确的输入匹配,也可以把不规范的输入转化成正确的数组。

import re
print re.match(r'^\d{3}\-\d{3,8}$', '010-12345')  # 匹配成功,返回一个match对象
print re.match(r'^\d{3}\-\d{3,8}$', '010 12345')  # 匹配失败,返回None

结果:
<_sre.SRE_Match object at 0x00000000025B2578>
None

2.分组

import re
m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')

print m.group(0)  # group(0)是原始字符串
print m.group(1)  # group(1)是第一个子串
print m.group(2)  # group(1)是第一个子串
print m.groups()  # groups是所有子串


结果:
010-12345
010
12345
('010', '12345')

3.切分字符串

>>> 'a b   c'.split(' ')  # b和c之间3个空格
['a', 'b', '', '', 'c']  # 结果表明:无法识别连续空格

>>> re.split(r'[\s\,\;]+', 'a,b;; c  d')
['a', 'b', 'c', 'd']  # 结果表明:一个或多个的空格、逗号、分号都能识别

贪婪匹配

正则匹配默认是贪婪匹配(尽可能多地匹配字符),加个?变为非贪婪匹配。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值