python 正则表达式的使用

1.匹配nginx下配置文件的upstream。

随便提取一个nginx下的配置文件,如下

python 正则表达式的使用

我们要匹配里面的每个upstream到大括号之间的信息。

要匹配信息的话,我们需要知道我们所有的是upstream到}之间的信息

python 正则表达式的使用

1.upstream之前有空格,我们需要加上\s匹配所有的空格,但是这个不是我们需要的信息,我们需要的信息用括号括起来;

2.我们需要匹配关键字upstream,然后后面有空格,加上\s,后面的是一串非空字符,我们使用\S+匹配;

3.后面接着是空格,匹配\s,然后是{;

4.到我们需要最后的}之间是一大串的字符,之间都是空格、字符、标点和数字,如果每个匹配的话太过繁琐啦,但是这里面是没有到我们最后需要的},所以我们只需要匹配n个非}的任意字符即可,所以我们使用的是[^}]+来匹配;

完整的写出来就如上图,

打印出第一次结果为:

python 正则表达式的使用

输出结果为:

python 正则表达式的使用


2.匹配session

首先我们随便使用requests模块的session.get获取到session信息

python 正则表达式的使用

输出的其中一段为:

python 正则表达式的使用

我们需要获取的是skuid和skuimgurl里面的信息:

python 正则表达式的使用1.我们需要匹配到关键字skuid,他是使用双引号,id为全数字,所以我们的匹配为"skuid":"(\d+)",

2.后面位n个空格所以使用\s+;

3.后面一段为非空字符所以我们使用"\S+",然后是很多空格\s+;

4.然后再匹配skurul这个字段,这个和1一样,但是这个不是我们需要的取值,所以不在括号内;

5.下一个为我们要的取值啦,首先是配置关键字"skuimgurl":,后面是我们在括号里面的非空字符(\S+)匹配,以,结尾就可以匹配出来啦;

输出结果为:

python 正则表达式的使用

正是我们需要的结果。