正则表达式:检查一个字符串是否与某个模式匹配
\d :匹配数字
\w :匹配字母或数字
. :匹配任意字符
{n} :匹配n个字符
{m,n} :匹配m到n个字符
\s :匹配空格
a|b :匹配a或b
^ :匹配字符串开头
$ :匹配字符串结尾
* :匹配0个或多个
+ :匹配1个或多个
? :匹配0个或1个
[abc] :匹配a、b或c
[^abc] :匹配除了a、b、c以外的
re模块:包含正则表达式的所有功能
建议使用Python的r
前缀,如r‘\d’
由于Python的字符串本身也用\
转义,所以要特别注意
1、match:匹配字符串
import re
m = re.match(r'\d{3}\-\d{3,8}',r'010-23456')
print(m)
结果:
<_sre.SRE_Match object; span=(0, 9), match='010-23456'>
2、search:扫描
import re
s = re.search(r'(.com)',r'someone@gmail.com')
print(s)
结果:
<_sre.SRE_Match object; span=(13, 17), match='.com'>
3、split:切分字符
import re
s = re.split(r'[\,]',r'hello,world')
print(s)
结果:
['hello', 'world']
4、sub:替换
import re
sen = 'Hello2018, 12world06.'
sen1 = re.sub(r'\d', '', sen)
print(sen1)
结果:
Hello, world.
5、group:分组
import re
sen = re.match(r'^(\d{3})-(\d{3,8})$', '010-23456')
print(sen.group(0))
print(sen.group(1))
print(sen.group(2))
结果:
010-23456
010
23456
验证Email地址的正则表达式
#验证Email地址的正则表达式
import re
sen1 = r'someone@gmail.com'
sen2 = r'bill.gates@microsoft.com'
sen3 = r'bob#example.com'
sen4 = r'mr-bob@example.com'
m = r'[\w\.]+\@[\w]+\.(com)'
print(re.match(m,sen1))
print(re.match(m,sen2))
print(re.match(m,sen3))
print(re.match(m,sen4))
结果:
<_sre.SRE_Match object; span=(0, 17), match='someone@gmail.com'>
<_sre.SRE_Match object; span=(0, 24), match='bill.gates@microsoft.com'>
None
None
资料来源:
1、廖雪峰官网:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143193331387014ccd1040c814dee8b2164bb4f064cff000
2、菜鸟教程:http://www.runoob.com/python3/python3-reg-expressions.html