import
re
#
str1 = ‘imook python‘
#
pa = re.compile(r‘imook‘)
#
ma = pa.match(str1)
#
输出匹配到的字符串
#
print(ma.group())
#
输出匹配到的字符串的位置
#
print(ma.span())
#
ma = re.match(r‘imook‘,‘imook python‘)
#
print(ma.group())
#
imook
#
. 匹配任意字符(除了n)
#
[...] 匹配字符集
#
d/D 匹配数字/非数字
#
s/S 匹配空白/非空白
#
w/W 匹配单词字符【a-zA-Z0-9】/非单词字符
#
* 匹配前一个字符0次或无限次
#
+ 匹配前一个字符1次或无限次
#
? 匹配前一个字符0次或者1次
#
{m}/{m,n} 匹配前一个字符m次或者n次
#
*?/+?/?? 匹配模式变为非贪婪 尽可能少匹配字符
#
^ 匹配字符串开头
#
$ 匹配字符串结尾
#
A/Z 指定的字符串必须出现在开头/结尾
#
| 匹配左右任意一个表达式
#
(ab) 括号中表达式作为一个分组
#
<number> 引用编号为num的分组匹配到的字符串
#
(?P<name>) 分组去一个别名
#
(?P=name) 引用别名为name的分组匹配字符串
#
ma = re.match(r‘[A-z][a-z]*‘,‘Ab1dd‘)
#
print(ma.group())
#
Ab
#
匹配划线字母开头的字符串
#
ma = re.match(r‘_[a-zA-Z]+[_W]*‘,‘_dshdg‘)
#
print(ma.group())
#
_dshdg
#
匹配0-99的数字
#
ma = re.match(r‘[1-9]?[0-9]‘,‘99‘)
#
print(ma.group())
#
99
#
匹配邮箱
#
ma = re.match(r‘[a-zA-Z0-9]{6}@163.com‘,‘abc123@163.com‘)
#
print(ma.group())
#
abc123@163.com
#
searh(pattern,string,flags=0) 在一个字符串中查找匹配
#
findall(pattern,string,flags=0) 找到匹配,返回所有匹配部分的列表
#
查找字符串中出现的数字
#
str1 = "imooc videomnum = 1000"
#
info = re.search(r‘d+‘,str1)
#
print(info.group())
#
1000
#
str2 = ‘c++ = 100, java = 99, python = 80‘
#
info = re.findall(r‘d+‘,str2)
#
print(info)
#
[‘100‘, ‘99‘, ‘80‘]
#
sub(pattern,repl,string,count=0,flags=0)
#
将字符串中匹配正则表达式的部分替换为其他值
#
str3 = "imooc videomnum = 1000"
#
info = re.sub(r‘d+‘,‘1001‘,str3)
#
print(info)
#
imooc videomnum = 1001
#
def addl(match):
#
val = match.group()
#
num = int(val)+1
#
return str(num)
#
str3 = "imooc videomnum = 1000"
#
info = re.sub(r‘d+‘,addl,str3)
#
print(info)
#
imooc videomnum = 1001
#
split(pattern,string,maxplit=0,flags=0)
#
根据匹配分割字符串,返回分割字符串组成的列表
#
str4 = ‘imooc:C C++ Java Python‘
#
info = re.split(r‘:| ‘,str4)
#
print(info)
#
[‘imooc‘, ‘C‘, ‘C++‘, ‘Java‘, ‘Python‘]
#
str4 = ‘imooc:C C++ Java Python,C#‘
#
info = re.split(r‘:| |,‘,str4)
#
print(info)
#
[‘imooc‘, ‘C‘, ‘C++‘, ‘Java‘, ‘Python‘, ‘C#‘]
原文:https://www.cnblogs.com/yanweichen/p/14163328.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!