Python3正则表达式常用方法

前言

re.findall(),re.search()re.match()是Python正则表达式中常用的方法,re.search()re.match()类似,此次主要介绍re.findall()re.search()
re.match() 尝试从字符串的起始位置匹配一个模式,匹配成功方法返回一个匹配的对象,否则返回None。
re.search() 扫描整个字符串并返回第一个成功的匹配,匹配成功方法返回一个匹配的对象,否则返回None。
re.findall()在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次, findall 匹配所有。
实例:

import re,json
dd = {
"data": {
        "XB-afea46d26a0f0b2d016a0f516710007c": [
            "17"
        ]
    },
    "url":"

what the fuck!

", "time":"243dsfaefa2019-04-03 18:12:45dafjk3k345345kadasjfk", "phone":"2004-959-559" } st = json.dumps(dd) pattern1 = r'-[0-9]+' print(re.search(pattern1,st).group()) print(re.findall(pattern1,st))

输出结果

-04
['-04', '-03', '-959', '-559']

正则表达式带有一个捕获组

findall返回该捕获组内正则表达式所匹配的字符的列表,search则会匹配整个正则表达式并返回第一个
实例

import re,json
dd = {
"data": {
        "XB-afea46d26a0f0b2d016a0f516710007c": [
            "17"
        ]
    },
    "url":"

what the fuck!

", "time":"243dsfaefa2019-04-03 18:12:45dafjk3k345345kadasjfk", "phone":"2004-959-559" } st = json.dumps(dd) pattern2 = r'-(\d+)' print(re.search(pattern2,st)) print(re.search(pattern2,st).group(0)) print(re.search(pattern2,st).group(1)) print(re.findall(pattern2,st))

输出


-04
04
['04', '03', '959', '559']

正则表达式带有多个个捕获组

findall返回多个捕获组内正则表达式所匹配的字符的元组的列表,search则会匹配整个正则表达式并返回第一个
实例

import re,json
dd = {
"data": {
        "XB-afea46d26a0f0b2d016a0f516710007c": [
            "17"
        ]
    },
    "url":"

what the fuck!

", "time":"243dsfaefa2019-04-03 18:12:45dafjk3k345345kadasjfk", "phone":"2004-959-559" } st = json.dumps(dd) pattern3 = r'(?P\d{4})-([0-9]{2})-(\d\d)' print(re.search(pattern3,st)) print(re.search(pattern3,st).group(0)) print(re.search(pattern3,st).group('year')) print(re.search(pattern3,st).group(2)) print(re.search(pattern3,st).group(3)) print(re.findall(pattern3,st))

结果


2019-04-03
2019
04
03
[('2019', '04', '03')]

你可能感兴趣的:(Python3正则表达式常用方法)