正则表达式

前端之家收集整理的这篇文章主要介绍了正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

正则表达式

re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

语法:re.match(pattern,string,flags=0)

pattern:匹配的正则表达式

string:要匹配的字符串

flags:标志位,控制正则表达式的匹配方式

选项 作用描述
re.I 忽略大小写
re.L 字符集本地化,用于多语言环境
re.M 多行匹配
re.S 使. 匹配包括\n在内的所有字符
re.X 忽略正则表达式中的空白,换行,以便添加注释
import re

def main():
    names = ['name1','_name','2_name','__name__','age!']
    for name in names:
        ret = re.match('[a-zA-Z_]+[\w]$',name)
        if ret:
            print('变量名 %s 符合要求,通过正则匹配的数据是%s' % (name,ret.group()))
        else:
            print('变量名 %s 非法' % name)


if __name__ == '__main__':
    main()

# match默认从头开始匹配

re.search方法

re.search匹配整个字符串(全文搜索),直到找到一个匹配。

语法:re.search(pattern,flags=0)

pattern:匹配的正则表达式

string:要匹配的字符串

flags:标志位,控制正则表达式的匹配方式

re.match和re.search基本语法是一样的,区别在于re.match只匹配字符串的开始,如果字符串的开始不符合正则表达式,匹配失败,返回None;而re.search匹配整个字符串(全文搜索),直到找到一个匹配。

import re

line = 'Cats are smarter than dogs'

matchObj = re.match(r'(.*) are (.*?) .*',line,re.M|re.I)

if matchObj:
    print('matchObj.group(): ',matchObj.group())
    print('matchObj.group(1): ',matchObj.group(1))
    print('matchObj.group(2): ',matchObj.group(2))
else:
    print('not match!')

    
"""
执行结果:
searchObj.group() :  Cats are smarter than dogs
searchObj.group(1) :  Cats
searchObj.group(2) :  smarter
"""

猜你在找的正则表达式相关文章