我正在研究python上的正则表达式。我花了整整一周的时间不明白我的代码出了什么问题。很明显,多字符串应该匹配,但我得到了其中一些。例如“model”、“US”,但我无法匹配37abc5afce16xxx和“-104.99875”。我的目标只是判断数组中的任何字符串是否匹配,以及匹配的是什么。你知道吗
我有这样的字符串:'
text = {'"version_name"': '"8.5.2"', '"abi"': '"arm64-v8a"', '"x_dpi"':
'515.1539916992188', '"environment"': '{"sdk_version"',
'"time_zone"':
'"America\\/Wash"', '"user"': '{}}', '"density_default"': '560}}',
'"resolution_width"': '1440', '"package_name"':
'"com.okcupid.okcupid"', '"d44bcbfb-873454-4917-9e02-2066d6605d9f"': '{"language"', '"country"':
'"US"}', '"now"': '1.515384841291E9', '{"extras"': '{"sessions"',
'"device"': '{"android_version"', '"y_dpi"': '37abc5afce16xxx',
'"model"': '"Nexus 6P"', '"new"': 'true}]', '"only_respond_with"':
'["triggers"]}\n0\r\n\r\n', '"start_time"': '1.51538484115E9',
'"version_code"': '1057', '"-104.99875"': '"0"', '"no_acks"': 'true}',
'"display"': '{"resolution_height"'}
数组具有多个字符串:
Keywords =["37abc5afce16xxx","867686022684243", "ffffffff-f336-7a7a-0f06-65f40033c587", "long", "Lat", "uuid", "WIFI", "advertiser", "d44bcbfb-873454-4917-9e02-2066d6605d9f","deviceFinger", "medialink", "Huawei","Andriod","US","local_ip","Nexus", "android2.10.3","WIFI", "operator", "carrier", "angler", "MMB29M", "-104.99875"]
我的代码为
for x in Keywords:
pattern = r"^.*"+str(x)+"^.*"
if re.findall(pattern, str(values1),re.M):
print "Match"
print x
else:
print "Not Match"
您的代码的目标有点混乱,因此假设您要检查
Keywords
列表中的哪些项也在text
字典中在代码中,似乎只将regex与字典值进行比较,而不与键进行比较(假设
values1
变量就是这样)。你知道吗另外,不用regex“^.*”来匹配字符串,只需
相关问题 更多 >
编程相关推荐