python正则表达式

一前言
本篇文章带你们快速入门正则表达式的使用,正则表达式的规则不只适用python语言,基本大多数编程语言都适用,在平常使用中极为普遍,读者们有必要学好正则表达式。看完这篇文章,读者们要理解什么是正则表达式,正则表达式的规则,常见的正则表达式示例,如何在python中使用函数进行正则表达式操做;python

二 正则表达式的概念
正则表达式是指在一串字符串中使用特殊的模式匹配得到子串,咱们能够对得到的子串进行提取,替换等操做;web

举个例子zszxz666 这个字符串,如今知识追寻者想要得到子串zszxz, 则须要通过一个模式匹配后得到子串,在正则表达式中这个模式能够不少种格式,知识追寻者在这边使用最简单的模式 [a-z]*,而后通过python正则表达式匹配函数就能够得到子串zszxz;这种方式比平时的字符串函数操做更加简便,适用范围普遍;正则表达式

三 经常使用的正则匹配模式
经常使用的正则表达式模式以下,若是对这些模式有疑惑的能够参照 正则表达式手册 ;手册中还有平常使用的正则示例,好比用户名,密码,邮箱,URL 的匹配模式等;
在这里插入图片描述
四 python正则经常使用修饰符
在这里插入图片描述
五 python经常使用正则行数说明
pattern 表示正则表达式模式
string 表示传入待匹配字符串
flags 标志位,能够用第四节的修饰符限定
count 表示限定匹配的次数
repl 表示替换的字符串,也可为一个函数
pos 起始位置
endpos 结束位置
maxsplit 最大分割次数
在这里插入图片描述编程

六 经常使用函数示例
6.1 match函数
group(num=0) 函数表示提取匹配的表达式,可使用组号提取对应的匹配结果;知识追寻者想要得到字符串中第一个出现的数字串;编程语言

import re
# 指定模式 至少匹配一个数字
pattern = re.compile(r'\d+')
# 输入的字符串
mat = pattern.match("451zszxz666")
# 得到第一个匹配到的值
g = mat.group();
# 451
print(g)

6.2search函数
知识追寻者想要得到指定的字符串,第一个匹配的就好svg

import re
# 想匹配nhzszxz 或者 nh666 或者 nhnh
pattern = re.compile(r'nh(zszxz|666|nh)')
ser = pattern.search('nhzszxzkkk nh666 llll nhnh')
g_0 = ser.group()
# zszxz
print(g_0)
g_1 = ser.group(1)
# nhzszxz
print(g_1)

6.3 findall函数
知识追寻者想要在字符串中得到全部的数字;函数

import re
pattern = re.compile(r'\d+')
# 输入的字符串
mat = pattern.fidall("451zszxz666")
# ['451', '666']
print(mat)
# 666
print(mat[1])

6.6 sub函数
知识追寻者想要得到全部非数字的子串;工具

import re
str = '8556gfggs5555dfg'
# 替换全部数字
result = re.sub(r'\d', '', str)
# gfggsdfg
print(result)

6.7 split函数
知识追寻者想要得到以,分割的字符串;测试

import re
str = '123,456,zszxz,666'
result = re.split(',',str)
# ['123', '456', 'zszxz', '666']
print(result)

6.8 finditer 函数
知识追寻者想要得到数字451,和666;.net

import re
pattern = re.compile(r'\d+')
# 输入的字符串
mat = pattern.finditer("451zszxz666")
for it in mat:
    print(it.group())

七 初学者使用正则表达式正确的姿式
初学者在使用正则表达式的时候不免会获得的匹配的结果与本身预期的不符合,能够借助一些在线工具匹配完成后再进行代码编写,经常使用的在线正则匹配测试以下;

在线工具