欢迎使用CSDN-markdown编辑器

来源:互联网 发布:mac下载fs2you 编辑:程序博客网 时间:2024/05/20 04:11

python学习

正则表达式(RE)可以匹配相应字符串集指定规则,

正则表达式模式被编译成一系列的字解码,然后由用c编写的匹配引擎执行。
正则表达式语言相对小型和功能有限:

  • 不是所有字符串处理都能使用正则表达式完成。

  • 字符匹配
    - 普通字符
    - 大多数字母和字符一般会和自身匹配
    - 正则表达式test和字符串“test”完全匹配
    - 元字符
    - . ^ +?[] |()[]abc;[az][akm]
    - 补集匹配不在区间范围内的字符:[^5]
    - 举例说明:
    import re 是引入re这个模块
    定义正则表达式就是定义一个字符串
    s=r ‘abc’ 定义正则表达式就是abc三个字母
    想从给定的字符串中查找数据:比如s是给定的字符串:re.findall(s,”aaaaa”)返回的是【】空字符串;re.findall(s,”abcaaaa”)返回的是[‘abc’];re.findall(s,”abcaaaabc”)匹配到[‘abc’,’abc’]
    有时,规则会有些变化:比如一个字符串st=”top tip tqp twp tep” , res=r“top”它相当于给出的正则 ,
    re.findall(res,st)针对res这个规则,看st中是否有符合的,返回结果是[‘top’]
    res = r “t[io]p” 这样 re.findall(res.st) 返回的是[‘top’,’tip’]
    res = r “t[^io]p”除了tip和top之外的,re.findall(res,st)返回的是[‘tqp’,’twp’,’tep’]
    - ^ 匹配行首。除非设置MULTILINE标志,它只是匹配字符串的开始。在MULTILINE模式里,它也可以直接匹配字符串的每个换行。
    使用:s=”hello world,hello boy”指定一个字符串;制定一个正则表达式,r=r”hello”;re.findall(r,s)返回的是[‘hello’,’hello’]
    r=r”^hello”,re.findall(r,s)返回的是[‘hello’]; s = “world,hello boy”,再进行正则匹配,则re.findall(r,s) , 因为s字符串的行首不是hello,所以返回的结果是re.findall(r,s) 返回结果是[]空字符串。
    - s=world,helloboy,r=rboy” , re.findall(r,s)结果返回的是[‘boy’]
    - 方括号里出现元字符,元字符不起作用,r= “t[abc]",re.findall(r,ta)[ta],re.findall(r,t’)返回的是[‘t$’] ; r=”t[abc^]”,re.findall(r,’t^’)返回的是[‘t^’]
    - r=r”x[0-9]x”,这样再进行正则匹配,re.findall(r,’x1x,x2x’)返回[‘x1x’,’x2x’]
    - r=r”x[a-zA-Z0-9]x”这个范围包括大小写字母包括数字的集合。

0 0