操作符
. 表示任何单个字符
[] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a-z]表示a-z单个字符
[^] 非字符集。对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符
* 前一个字符的0次或者无限次的扩展 abc*表示ab、abc、abcc、abcccc等等
+ 前一个字符的1次或者无限次的扩展 abc+表示 abc、abccc、abcc、abccccc等
? 前一个字符的0次或者1次扩展 abc?表示 ab、abc
| 左右表达式中的任意一个 abc|def表示abc、def
{m} 扩展前一个字符m次 ab{2}c表示abbc
{m,n} 扩展前一个字符m至n次(含n) ab{1,2}c表示abc、abbc
^ 匹配字符串开头 ^abc表示abc在一个字符串的开头
$ 匹配字符串结尾 abc$表示abc在一个字符串的结尾
() 分组标记内部只能使用|操作符 (abc)表示abc ,(abc|def)表示abc、def
\d 数字,等价于[0-9]
\w 单词字符,等价于[A-Za-z0-9_] 表示字符小写大写的a-z 和数字0-9以及下划线_
^-?\d+$ 整数形式的字符串
^[0-9]*[1-9][0-9]*$ 正整数形式的字符串
[1-9]\d{5} 中国境内邮政编码,6位
[\u4e00-\u9fa5] 匹配中文字符
\d{3}-\d{8}|\d[4]-\d{7}
\d+.\d+.\d+.\d+ --> IP地址 低配版
\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3} --> 中配版
0-99 100-199 200-249 250-255
[1-9]?\d 1\d{2} 2[0-4]\d 25[0-5]
([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5].){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]) -->匹配ip地址(完整版)
看不清文本,请复制后到文本中观看,谢谢合作!
*?前一个字符0次或无限次扩展,最小匹配
+?前一个字符1次或无限次扩展,最小匹配
??前一个字符0次或一次的扩展,最小匹配
{m,n}? 扩展前一个字符m至n次(含n),最小匹配
import re
#在一个字符串中搜索匹配正则表达式的第一个位置返回match对象
match = re.search(r'[1-9]\d{5}','BIT 100081')
if match:
print(match.group(0))
#从一个字符串的开始位置起匹配正则表达式,返回match对象
match1 = re.match(r'[1-9]\d{5}','100081 BIT')
if match1:
print(match1.group(0))
#搜索字符串,以列表类型返回全部能匹配的子串
ls = re.findall(r'[1-9]\d{5}','BIT100081 TSU100084')
print(ls)
#将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
split = re.split(r'[1-9]\d{5}','BIT100081 TSU100084')
print(split)
# maxsplit=1只匹配第一个位置
split1 = re.split(r'[1-9]\d{5}','BIT100081 TSU100084',maxsplit=1)
print(split1)
#搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素都是match对象
for m in re.finditer(r'[1-9]\d{5}','BIT100081 TSU100084'):
if m:
print(m.group(0))
#在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串
print(re.sub(r'[1-9]\d{5}',':zipcode','BIT100081 TSU100084'))
import re
#search表示匹配一次的结果
m = re.search(r'[1-9]\d{5}','BIT100081 TSU100084')
print(m.string)
print(m.re) #正则表达式
print(m.pos) #起始位置
print(m.endpos) #结束位置
print(m.group(0)) #查看匹配的信息 一般都在group(0)中
print(m.start()) #匹配的原始位置
print(m.end()) #匹配的终点位置
print(m.span()) #查看两个位置的二元关系
import re
match = re.search(r'PY.*N','PYANBNCNDN')
#re库默认采用贪婪匹配,即输出匹配最长的子串
print(match.group(0))
#最小匹配
match1 = re.search(r'PY.*?N','PYANBNCNDN')
print(match1.group(0))
声明:我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=23z6dnotw0skk