正则表达式
- 是一个特殊的字符序列 一个字符串是否与我们所设定的这样的字符序列相匹配
- 快速检索文本 实现替换文本的操作
import re
# 简单示例
a = 'mingohhh666ggg'
r = re.findall('mingo', a)
print(r)
# \d可以匹配数字 提取数字
aa = 'c0sdgasd8gsadgas7fasdg9dasf6dasg5d5asd89'
re.findall('\d',aa)
# mingo就是普通字符
# \d就是元字符 元字符有很多 \D就是非数字
# 字符集 通过[]进行匹配 普通字符的定界
# a[bcd]c a[^bcd]c进行取反 a[abcdef]c可以简写a[a-f]c
aaa = 'abc, acc, avc, afc'
r = re.findall('a[bv]c', aaa)
print(r)
# 概括字符集 \d数字 \D非数字 \w单词字符,不包括特殊字符 \s空白字符
# 数量词 相当于把单个字符重复一个数量
aaaa = 'python111java222c22312'
r = re.findall('[a-z]{1,6}', aaaa)
# 得到[python, java,c]
# 贪婪与非贪婪 默认贪婪 加?就是非贪婪模式
# *匹配*前面的字符0次或者无限多次
aaaaa = 'pytho*0python*879pythonnnn'
r = re.findall('python*', aaaaa)
# 得到[python, python, pythonnnn]
# +匹配一次或者无限多次
# ?匹配0次或者1次
# 边界匹配 ^\d{4,8}$ ^$全匹配模式 ^从开头匹配 $ 从末尾匹配
aaaaaa = '1010101010101'
r = re.findall('^\d{4,8}$', aaaaaa)
# 组()表示一个组
aaaaaaa = 'pythonpythonpythonpython'
r = re.findall('(python){3}', aaaaaaa)
# 匹配模式 第三个参数就是匹配模式 re.I 忽略大小写
r = re.findall('c#', launage, re.I)
# re.sub 正则替换
# r = re.sub('min'-->规则, 'mingo'-->替换后的字符, aaaa -->原子符, count--> 0就是无限次替换 1就是一次 )
# 替换后的字符可以是经过函数处理之后返回一个字符
language = 'PythonC#JavaC#PHPC#'
def convert(value):
return python
r = re.sub('C#', convert, lanuage)
print(r)
# 得到PythonpythonJavapythonPHPpython
网友评论