我开始在python中学习正则表达式,我有以下任务:
我需要编写一个带有这2个字符串的脚本:
string_1 = 'merchant ID 1234, device ID 45678, serial# 123456789' string_2 = 'merchant ID 8765, user ID 531476, serial# 87654321'
并且只显示它具有串merchant ID ####
并device ID ####
在其中.
为了检查第一个条件,我写了以下一行:
ex_1 = re.findall(r'\merchant\b\s\ID\b\s\d+', string_1) print (ex_1) output: ['merchant ID 1234'] - works fine!
问题是我出于某种原因无法得到其他条件:
ex_2 = re.findall(r'\device\b\s\ID\b\s\d+', string_1) output: [] - empty list.
我究竟做错了什么?
因为:
ex_2 = re.findall(r'\device\b\s\ID\b\s\d+', string_1) ^^
其中一些比赛,但\m
在\merchant
仍然是m
.但是你应该删除\
之前\ID
和之前的\device
:
>>> re.findall(r'device\b\sID\b\s\d+', string_1) ['device ID 45678']