Python正则表达式的常见用法

正则表达式语法

  • 正则表达式是一个特殊的字符序列,它能方便的检查一个字符串是否与某种模式匹配。
  • 下面是则表达式的一些常见用法:
# 正则表达式

import re     # 正则表达式模块

# 匹配除了换行符之外的所有字符
m = re.findall('.', 'aa\ccdef')
print(m)
# 运行结果:['a', 'a', '\\', 'c', 'c', 'd', 'e', 'f']

# 转义字符
m = re.findall('\.', 'ad.cb')
print(m)
# 运行结果:['.']

# 字符集
m = re.findall('a[bcd]e', 'abeaceade') #字符集就是用[]扩起来的,只要匹配其中的任意一个字符都可以
print(m)
# 运行结果:['abe', 'ace', 'ade']

# 数字
m = re.findall('\d', 'abc123def')
print(m)
# 运行结果:['1', '2', '3']


# 非数字
m = re.findall('\D', 'abc123def')
print(m)
# 运行结果:['a', 'b', 'c', 'd', 'e', 'f']


# 空白字符
m = re.findall('\s', 'abc a\tb2c')
print(m)
# 运行结果:[' ', '\t']


# 非空白字符
m = re.findall('\S', 'abc a\tb2c')
print(m)
# 运行结果:['a', 'b', 'c', 'a', 'b', '2', 'c']

#数字和字母
m = re.findall('\w', 'abc#12#e#f-+')
print(m)
# 运行结果:['a', 'b', 'c', '1', '2', 'e', 'f']


#非数字和字母
m = re.findall('\W', 'abc#12#e#f-+')
print(m)
# 运行结果:['#', '#', '#', '-', '+']

#匹配开头
m = re.findall('^abc', 'abcabc') #匹配开头的abc
print(m)
# 运行结果:['abc']

#匹配结尾
m = re.findall('abc$', 'abcabc')  #匹配结尾的abc
print(m)
# 运行结果:['abc']

#不区分大小写
m = re.findall('abc', 'abcABc', re.I)
print(m)
# 运行结果:['abc', 'ABc']

#匹配换行
s = '<div>hello\nworld</div>'
m = re.findall(r'<div>(.*)</div>', s, re.S)
print(m)
# 运行结果:['hello\nworld']


#匹配多行
m = re.findall('^abc','abc\nabc')
print(m)  # ['abc']
m = re.findall('^abc','abc\nabc',re.M)
print(m)  # ['abc', 'abc']
# 运行结果:['abc', 'abc']

# 匹配一个或0个
m = re.findall('ab?', 'abbbbaba')
print(m)
# 运行结果:['ab', 'ab', 'a']

# 匹配至少一个
m = re.findall('ab+', 'abbbbabb') # 匹配一个或着多个
print(m)
# 运行结果:['abbbb', 'abb']


# 匹配至少0个
m = re.findall('ab*', 'aaabbabb')
print(m)
# 运行结果:['a', 'a', 'abb', 'abb']


#匹配以org结尾的邮箱

m = re.findall('\w+@\w+\.org','468137075@qq.com;467819@qq.org')
print(m)
# 运行结果:['467819@qq.org']

#其他规则
# 如果是多次调用某个正则,则最好先编译后使用,编译之后,可以多次使用
p = re.compile('^abc')
m = p.findall('abc\nabc')
print(m)
# 运行结果:['abc']
m = p.findall('abcdef\nnfdsfabc')
print(m)
# 运行结果:['abc']
m = p.findall('abcdef\nnfdsfabc')
print(m)
# 运行结果:['abc']
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值