Python正则表达式

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

#. 匹配任意字符(除了
)
#[...] 匹配字符集
#d/D 匹配数字/非数字
#s/S 匹配空白/非空白
#w/W 匹配单词字符【a-zA-Z0-9】/非单词字符
#* 匹配前一个字符0次或无限次
#+ 匹配前一个字符1次或无限次
#? 匹配前一个字符0次或者1次
#{m}/{m,n} 匹配前一个字符m次或者n次
#*?/+?/?? 匹配模式变为非贪婪 尽可能少匹配字符
#^ 匹配字符串开头
#$ 匹配字符串结尾
#A/ 指定的字符串必须出现在开头/结尾
#| 匹配左右任意一个表达式
#(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