一. 初识正则表达式
1.定义:是一个特殊的字符序列,可以帮助检测一个字符串是否与我们所设定的字符序列相匹配。
2.作用:可以实现快速检索文本、实现替换文本的操作。
3.场景:
1、检测一串数字是否是电话号码
2、检测一个字符串是否符合e-mail格式
3、把一个文本里指定的单词替换为另外一个单词
4.例子:
查看传入的字符串是否还有Python
(1)
a = 'C|C++|Java|Python'
print(a.index('Python') > -1)
或者
print('Python' in a)
(2)
用正则表达式处理:
import re
a = 'C|C++|Java|Python'
r = re.findall('Python',a)
if len(r) > 0:
print('字符串中包含Python')
else:
print('No')
5.语法
二. 元字符与普通字符
1.‘Python’普通字符,'\d'元字符。正则表达式就是由一系列普通字符和元字符组成的。
2.例子:
提取字符串中所有的数字:\d :表示所有数字
import re
a = 'C2C++4Java7Python6'
r = re.findall('\d',a)
print(r)
#结果:
['2', '4', '7', '6']
提取字符串中所有的非数字:
import re
a = 'C2C++4Java7Python6'
r = re.findall('\D',a) #\D为非数字
print(r)
三.字符集
例子:
1.中间一个字符是c或者f的单词:[ ]:字符集,或关系
普通字符定界,确定某一个小段。该例子中a[cf]c,中括号外面的a和c就是普通字符定界
import re
s = 'abc,acc,adc,aec,afc,ahc'
r = re.findall('a[cf]c',s)
print(r)
#结果:
['acc', 'afc']
2.中间一个字符不是c或者f的单词:^:取反操作
import re
s = 'abc,acc,adc,aec,afc,ahc'
r = re.findall('a[^cf]c',s)
print(r)
#结果:
['abc', 'adc', 'aec', 'ahc']
3.利用字符顺序省略字符,匹配c,d,e,f:- :省略中间字符
import re
s = 'abc,acc,adc,aec,afc,ahc'
r = re.findall('a[c-f]c',s)
print(r)
#结果:
['acc','adc','aec',