python 正则表达式提取某个字符串中的特定字符
实例
需要提取的字符串,如:
"['{0: 203, 11: 1627438682 [2021-07-28 10:18:02], 12:36 [通过蓝牙更改错误密码锁定计数], 13: 770449129, 19: 3, 20: 0, 100: 2141634486}']"
需要实现的功能
判断13:后面的数字长度是否满足指定位数
代码实现
#正则表达式提取列表字符串
def re_get_results(inputStr, re_str='13: \d{9}'):
'''
输入字符串,通过正则进行提取
:param inputStr: str,需要提取的字符串,如:"['{0: 203, 11: 1627438682 [2021-07-28 10:18:02], 12:36 [通过蓝牙更改错误密码锁定计数], 13: 770449129, 19: 3, 20: 0, 100: 2141634486}']"
:param re_str: str,正则表达式,如:'13: \d{9},',或者 '13: (\d{9}),' 备注:()中表示需要提取的目标数据
:return: 返回列表类型的数据
'''
import re
try:
# inputStr = "['{0: 203, 11: 1627438682 [2021-07-28 10:18:02], 12:36 [通过蓝牙更改错误密码锁定计数], 13: 770449129, 19: 3, 20: 0, 100: 2141634486}']"
reg = re.compile(re_str, re.S) # 增加匹配效率的 S 多行匹配
Lists = re.findall(reg, str(inputStr))
print('Lists={}'.format(Lists))
if len(Lists) >= 0:
return Lists
else:
Lists=['']
return Lists
except BaseException as e:
print('正则提取失败,失败信息:{}'.format(e))
调用方法
if __name__ == '__main__':
re_get_results("['{0: 203, 11: 1632633325 [2021-09-26 13:15:25], 12:13 [蓝牙设置时间], 13: 2018671584, 16: 1627437600, 100: 280977561}']",'13: \d{9}')
测试结果
Lists=['13: 201867158']
今日美图