Python的正则表达式(一)

Python的re模块是专门用来处理正则的

import re

字符匹配分普通字符和元字符,普通字符就是直接匹配,元字符是模糊匹配,今天学了几个元字符,mark一下

1、^

用于指定只和行首匹配

s=r'^t'
re.findall(s, 'tan, tbn, ttt')

返回tan中的t,注意^符号放于首位

如果要匹配^自身的字符,则使用转义符'\',这里和c语言的\n\r\t等类似

s=r'\^ta'
re.findall(s, 'tan, ^tan, ttt')

返回^ta,这里没限定是否在行首匹配,在任何位置都可以

2、$

用于指定只和行尾匹配

s=r't$'
re.findall(s, 'tan, tbn, ant')

返回ant中的t,注意$符号放于末尾

如果要匹配$自身的字符,则使用转义符'\'

s=r't\$'
re.findall(s, 'tan, t$bn, ant')

返回t&,同样没有限定在行尾匹配,任何位置都可以

3、[ ] 

用于指定一个字符

s = r't[abc]n'
re.findall(s,'tan,tbn,tcn,tdn')

返回 tan tbn tcn,表示abc三字母中的任意一个匹配,同理[a-z]表示任意一个字母,[0-9]表示任意一个数字,[0123456789]这也可以!

在[]中的元字符都是不起作用的

s = r't[abc$]'
re.findall(s,'ta,tb,t$,tt')

返回ta tb t$,不返回t,因为这里$不起行尾的作用,只是简单的一个‘$’字符

但^在[]中有取反的作用

s = r't[^abc]n'
re.findall(s,'tan,tbn,tcn,tdn')

返回tdn,意味着不取abc中的字母。那么如何像‘$’那样在[]表示字符呢

s = r'[abc^]t'
re.findall(s,'^t,at,bt,dt,^t')

这样既可,返回^t,at,bt,^t。

============================

继续之前的转义字符

\d 表示所有的十进制数

\D表示所有的非十进制数

\w表示所有的字母大小写和数字

\W表示所有的非字母大小写和数字

\s表示所有的空白[\t\n]

\S表示所有的非空白

============重复===============

s = r'^010-[0-9]{8}'
re.findall(s,'010-81892274')

{n}表示前面的字符重复n次

{m,n}表示前面的字符重复m-n次

*匹配零次或多次

s = r'^010-[0-9]*'
re.findall(s,'010-81892274')

返回010-81892274

?匹配零次或一次

s = r'^010-[0-9]?'
re.findall(s,'010-81892274')

返回010-8

+至少匹配一次(贪婪)

s = r'^010-[0-9]+'
re.findall(s,'010-81892274')

返回010-81892274

+?至少匹配一次(非贪婪)

s = r'^010-[0-9]+?'
re.findall(s,'010-81892274')

返回010-8

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值