【python基础】 学习笔记六 正则表达式

正则表达式是用来匹配字符串的工具,我们可以给字符串制定一个规则,一旦符合符合这个规则,就认为“匹配”了。

  • 一、常用描述字符的方法: 

1、\d :匹配一个数字

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

3、.  : 匹配任意一个字符

4、* :表示任意个字符(包括0个)

5、+ :表示至少1个字符

6、?:表示1个或0个字符

7、{n} :表示n个字符

8、{n,m} : 表示n - m个字符

9、\s : 匹配一个空格

10、[0-9a-zA-Z] :  匹配一个数字、字母或者下划线

11、[0-9a-zA-Z]+: 匹配至少由一个数字、字母或者下划线组成的字符串

12、A|B : 匹配A或B

13、^ : 表示行的开头

14、$ : 表示行的结束

 

  • 二、re模块

python中的 re 模块包含所有正则表达式的功能,这里介绍几个方法。

1、match()

match()方法用于判断是否匹配,匹配成功就会返回一个Match对象;否则返回None。

2、split()

split() 用于切分字符串,接收两个参数,第一个参数是切分的参照,比如空格等,第二个参数就是字符串。

3、group()

在正则表达式中定义了组,就可以通过 group() 方法来提取出子串,注意group(0)始终是原始穿。

 

这里通过例子来说明

1、请尝试写一个验证Email地址的正则表达式。版本一应该可以验证出类似的Email:

  • someone@gmail.com
  • bill.gates@microsoft.com
import re

def is_valid_email(addr):
        return re.match('^[0-9a-zA-Z\.]+@(\w+).com', addr)

assert is_valid_email('someone@gmail.com')
assert is_valid_email('bill.gates@microsoft.com')
assert not is_valid_email('bob#example.com')
assert not is_valid_email('mr-bob@example.com')
print('ok')

2、版本二可以提取出带名字的Email地址:

  • <Tom Paris> tom@voyager.org => Tom Paris
  • bob@example.com => bob 
import re
def name_of_email(addr):
    m = re.match(r'(<?)([0-9a-zA-Z\s]*)(>?)(\s?)(\w*)@(\w*)(.org?|.com?)$' ,addr)
    if m :
        return m.group(2)



assert name_of_email('<Tom Paris> tom@voyager.org') == 'Tom Paris'
assert name_of_email('tom@voyager.com') == 'tom'
print('ok')

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值