正则化表达方式篇

https://blog.youkuaiyun.com/sinat_20791575/article/details/54139404

正则表达式元字符如下:. ^ $ * + ? { } [ ] \ | ( ) 
 . 匹配除换行符以外的所以字符 
 ^ 规定匹配模式必须出现在目标字符串的开头,例如:^hell    hello    hellboy 
 $ 规定匹配模式必须出现在目标字符串的结尾,例如:ar$   car   bar 
* 其前一个字符必须在目标对象中连续出现零次或多次 
 + 其前一个字符必须在目标对象中连续出现一次或多次 
? 其前一个字符必须在目标对象中连续出现一次或零次 
{n} 匹配确定的n次,例如:o{2} oo 
{n,} 至少匹配n次,例如:o{2} oo ooo oooo 
{n,m} 至少匹配n次,至多匹配m次,例如:o{2,3} oo ooo 
[A-Z] A-Z内任意一个大写字母 
[a-z] a-z内任意一个小写字母 
[0-9] 0-9内任意一个数字,等价于 \d 
[A-Za-z0-9] 任意一个字母或数字,等价于 \w 

\ 转义字符,例如[ ==> [ , \==>\ 
| 管道符号,A和B是任意的RE,那么A|B就是匹配A或者B的一个新的RE。 


\s 用于匹配单个空格,包括tab键和换行符 
\S 用于匹配单个空格之外的所有字符 
\d 匹配0-9的数字 
\w 匹配字母、数字或下划线 
\W 匹配所有和\w不匹配的字符 

 

3. 正则匹配方式:

  • re.findall(pattern, string) 匹配字符串中所有符合规则的字符串,并以列表形式返回

注意:
findall如果使用了分组,则输出的内容将是分组中的内容而非find到的结果,
为了得到find到的结果,要加上问号来启用“不捕捉模式”,就可以了。

>>> re.findall("www.(baidu|xinlang)\.com","www.baidu.com")
['baidu']
>>> re.findall("www.(?:baidu|xinlang)\.com","www.baidu.com")
['www.baidu.com']

 

  • re.match(pattern, string, flags=0) 只匹配字符串中开头符合规则的字符串,其返回的是一个对象 pattern 是正则规则 string 是字符串 flags 是匹配模式
>>> s = '123abc4545'
>>> re.match(r'\w',s)
<_sre.SRE_Match object; span=(0, 1), match='1'>
>>> re.match(r'\w',s).group()   只匹配字符串开头
'1'

 

  • re.search(pattern,string,flags=0) 匹配字符串的所有,但是匹配即停止,只返回第一个匹配的字符 pattern 是正则规则 string 是字符串 flags 是匹配模式

复制代码

>>> s = '123abc4545'
>>> re.search(r'\w',s)
<_sre.SRE_Match object; span=(0, 1), match='1'>
>>> re.search(r'\w',s).group()
'1'
>>> re.search(r'\D',s).group()
'a'

复制代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值