Python基础知识(24):正则表达式

正则表达式:检查一个字符串是否与某个模式匹配

\\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 ; span=(0, 9), match=\'010-23456\'>

2、search:扫描

import re

s = re.search(r\'(.com)\',r\'someone@gmail.com\')
print(s)

结果:
<_sre.SRE_Match  ; 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  ; span=(0, 17), match=\'someone@gmail.com\'>
<_sre.SRE_Match  ; 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- s.html

 

收藏 打印