加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-14 05:35:51 所属栏目:百科 来源:网络整理
导读:正则表达式 re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 语法: re.match(pattern,string,flags=0) pattern:匹配的正则表达式 string:要匹配的字符串 flags:标志位,控制正则表达式的

正则表达式

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
"""

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读