51Testing软件测试论坛

标题: 测试大神手把手带你玩转Python正则表达式 [打印本页]

作者: 草帽路飞UU    时间: 2022-10-20 17:21
标题: 测试大神手把手带你玩转Python正则表达式
本帖最后由 草帽路飞UU 于 2022-10-20 17:23 编辑

01
概念


如果要处理的文件比较简单,直接使用字符串匹配就可以了,如下:



[attach]144095[/attach]


那么使用字符串匹配的python代码:



def find_start_re(fname):
    f = open(fname,'r')
    for line in f:
        if line.startswith('re'):
            print(line)
    f.close()

find_start_re('re.txt')

执行结果:
[attach]144096[/attach]
单个处理数据和文本,效率不高,不适合数据量大的场景,正则表达式可以解决处理数据量大的情况。

正则表达式概念:






02
re


模块re使用的过程:

[attach]144097[/attach]

使用举例:
1.

[attach]144098[/attach]

2.
[attach]144099[/attach]

3.匹配时忽略大小写,增加re.I
[attach]144100[/attach]

4.正则表达式语法

[attach]144101[/attach]


[attach]144102[/attach]

+的用法:匹配合理的变量名(必须以‘_’或者字母开头)

[attach]144103[/attach]

?用法:匹配0-99的数字

[attach]144104[/attach]

{m}/{m,n}的用法:匹配合理的126邮箱(@126.com之前是6到10位字符)

[attach]144106[/attach]

*?/+?/??的用法:

[attach]144107[/attach]

5、正则表达式进行边界匹配

[attach]144108[/attach]
6、正则表达式进行分组匹配

[attach]144109[/attach]
| 的用法:匹配0-99的数字

[attach]144111[/attach]
[attach]144110[/attach]
(ab)的用法:

[attach]144112[/attach]
\<number>的用法:处理xml文件时会经常用到 <book>python</book>
[attach]144113[/attach][attach]144114[/attach]
(?P<name>)、(?P=name)的用法:
[attach]144115[/attach]


03
re的其他方法



因为re模块的match方法是从头开始匹配的,当需要匹配字符串中的子串的时候就不好用了。


[attach]144116[/attach]

[attach]144117[/attach]


search方法:

匹配字符串中的数字 'study python = 1000'

[attach]144118[/attach]

findall方法:

[attach]144119[/attach]

sub方法:

参数repl有两种方式,一种是本身就是字符串,一种是函数,取函数返回的字符串

[attach]144120[/attach]

split用法:

[attach]144121[/attach]

















欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2