正则中两个点可以匹配到所有的东西。
字符包括数字,字母,中文,符号,空格。
{n,},逗号说明大于n次。
{n}如果没有逗号就是匹配指定的次数。
{n,m},至少n次,最多m次。
只需了解 . \d ? * + 是什么意思。
一般来说,一个正则表达式,它是元字符和限定字符的组合。
元字符表示匹配哪种类型的字符,限定符表示匹配多少次。
?是匹配0次或1次,每次只能匹配一个,所以会单独一个一个的数字去匹配。
$在正则表达式里面表示以什么结尾。
如果在正则表达式里面变成普通的字符,变成不是正则表达式的字符,可以这样表示:\$
^在正则表达式里面表示以什么开头。
如果在正则表达式里面变成普通的字符,变成不是正则表达式的字符,可以这样表示:\^
来自文件do_regx.py
#python中有个正则re模块,可以支持我们去做任何的正则操作
import re
#\$\{(.*?)\}
# s='www.lemfix.com'#目标字符串
# res=re.match('(w)(ww)',s)#全匹配。match叫做头部匹配:如果写成s='ww.lemfix.com',
# 再运行res=re.match('www',s),就输出None
# 看结果:group(),group()把你拿到的结果进行分组。
# print(res.group(0))#group() 分组 根据你正则表达式里面的括号进行分组。
# group()==group(0)拿到匹配的全部字符
# s='hellolemonfixlemon'
# res=re.findall('lemon',s)#返回的是列表。在字符串里面找匹配的内容存在列表里面。
# 如果有分组,就是以元组的形式表现出来,列表嵌套元组。
# print(res)
from tools.get_data2 import GetData
# s='{"mobilephone":"${normal_tel}","pwd":"123456"}'
class DoRegx:
@staticmethod
def do_regx(s):
while re.search('\$\{(.*?)\}',s):
key=re.search('\$\{(.*?)\}',s).group(0)
value=re.search('\$\{(.*?)\}',s).group(1)
s=s.replace(key,str(getattr(GetData,value)))
return s
if __name__=='__main__':
s='{"mobilephone":"${admin_tel}","pwd":"${pwd}"}'
res=DoRegx.do_regx(s)
print(res)
输出结果如下:
文件do_regx.py引入了文件get_data2.py中的代码。
我就不附上get_data2.py的代码了,本章内容主要了解正则表达式的用法,学会思路就行。