Parse 学习
正则表达式的替代品
安装
特性与用法
parse 的 API 与Python Regular Expressions 近似,主要就是 parse, search 及 findall 这三个方法。一些基础的使用可以通过 parse 的文档来了解。
pattern 的格式
parse 的格式与 python format syntas 非常类似。可以通过{}或者{field_name}来对匹配的文本进行捕获。
测试样例
简单使用
1 2 3 res = parse("It's {}, I love it!" , "It's spam, I love it!" ) print (res, type (res))print (res[0 ])
命名提取
1 2 res = parse("It's {food}, I love it!" , "It's spam, I love it!" ) print (f"res: {res} \nres['food']: {res['food' ]} ,\ntype(res): {type (res)} " )
1 2 3 res: <Result () {'food' : 'spam' }> res['food' ]: spam, type (res): <class 'parse.Result' >
类型转换 指定提取的数据类型
1 2 3 4 5 print ("=" * 20 )res = search("Age: {number:d}\n" , "Name: Rufus\nAge: 42\nColor: red\n" ) print ( f"res: {res} \nres['number']: {res['number' ]} ,\ntype(res['number']): {type (res['number' ])} " )
1 2 3 res: <Result () {'number' : 42}> res['number' ]: 42, type (res['number' ]): <class 'int' >
测试脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 """ @File : PythonStudy.py @Time : 2025/01/16 09:42:34 @Author : Sunmy @Description: Parse学习 """ from parse import *res = parse("It's {}, I love it!" , "It's spam, I love it!" ) """ <Result ('spam',) {}> <class 'parse.Result'> spam """ print ("=" * 20 )res = parse("It's {food}, I love it!" , "It's spam, I love it!" ) print (f"res: {res} \nres['food']: {res['food' ]} ,\ntype(res): {type (res)} " )print ("=" * 20 )res = search("Age: {number:d}\n" , "Name: Rufus\nAge: 42\nColor: red\n" ) print ( f"res: {res} \nres['number']: {res['number' ]} ,\ntype(res['number']): {type (res['number' ])} " ) print ("=" * 20 )log_line = "2023-10-05 12:34:56 INFO User logged in: username=alice" pattern = "{date} {timestamp} {level} {message}" result = parse(pattern, log_line) print (result["date" ]) print (result["timestamp" ]) print (result["level" ]) print (result["message" ])