正则表达式复习+python使用正则

    xiaoxiao2025-04-29  7

    复习了下正则表达式的一般用法,足够cover日常需要了。软件 RegexBuddy非常好用,可以实时显示正则匹配效果,方便地用于测试。

    1.逻辑或

    例如,两个正则表达式满足其中一个就可。

    start|end //匹配start或者end

    2.匹配任意单个字符

    英文句号(.)可以匹配除了换行符(\n)以外的任何字符。

    a.t //at之间任何字符都能匹配,例如a1t、aat、a.t等

    3.一行起始或一个字符串的头尾

    ^匹配一行的头部 $匹配一行的末尾 \b匹配一个单词的边界 \B匹配不是一个单词的边界,即在单词头尾间的情况

    例如,字符串为:apple apple apple

    ^apple //匹配第一个apple apple$ //匹配最后一个apple the //任何包含the的字符串 \bthe //任何以the开头的字符串 the\b // 任何以the结尾的字符串 \bthe\b //仅仅匹配the这个单词 \Bthe //同\bthe相反的意思,任何不是以the开头的字符串

    4.字符集

    .虽然可以表示任意字符,但有时候需要限定在某些范围内的字符。

    2[abc] //匹配2a,2b,2c [ab][cd] //匹配ac,ad,bc,bd [0-9] //匹配一个0至9的数字 [^\t\n] //不匹配\t或\n

    5.存在和频率的限定

    (*)星号将匹配其左边的正则表达式出现0次或多次的情况 (+)加号将匹配1次或者多次的情况 (?)问号将匹配0次或多次的情况 ({})大括号里是一个值或逗号分隔的两个值。例如{3}表示精确匹配前面的正则表达式出现3次,{1,5}表示精确匹配前面的正则表达式出现1至5次

    6.一些特殊字符

    \d //匹配任一十进制数字,\D匹配任何非十进制数 \w //匹配任何字母数字,同[A-Za-z0-9]。\W与之相反 \s 匹配任何空格表示字符,同[\n\t\r\v\f]。\S与之相反

    7.python使用正则表达式

    需要导入re模块,search方法返回第一次匹配的结果

    >>> import re >>> >>> pt = 'a[0-9]b' >>> m = re.search(pt,'aaa abb a1b ab a2b') >>> if m is not None: ... print m.group() ... else: ... print 'None' ... a1b >>>

    使用findall()查询字符串中某个正则表达式匹配的全部出现情况,保存为list返回

    >>> re.findall( 'a[0-9]b','aaa abb a1b ab a2b') ['a1b', 'a2b']

    finditer()是一个与findall()类似但是更节省内存的变体,返回一个迭代器。

    >>> for i in re.finditer(pt, 'aaa abb a1b ab a2b'): ... print i.group(), i.span() ... a1b (8, 11) a2b (15, 18)

    正则表达式的编译时必需的,那么使用预编译是可以提升执行性能的。

    >>> regex = re.compile(r'a[0-9]b') >>> print regex.findall('aaa abb a1b ab a2b') ['a1b', 'a2b']

    8.其它

    还有一些高级用法,实际用到时过去查。一些资料: 正则表达式30分钟入门教程: http://deerchao.net/tutorials/regex/regex.htm 正则表达式– 语法| 菜鸟教程: http://www.runoob.com/regexp/regexp-syntax.html

    转载请注明原文地址: https://ju.6miu.com/read-1298584.html
    最新回复(0)