数组使用多行(正则表达式)Python对文本具有多个字符串

2024-10-01 02:18:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究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"

Tags: 字符串代码namenexusmodeltimeversion数组
1条回答
网友
1楼 · 发布于 2024-10-01 02:18:11

您的代码的目标有点混乱,因此假设您要检查Keywords列表中的哪些项也在text字典中

在代码中,似乎只将regex与字典值进行比较,而不与键进行比较(假设values1变量就是这样)。你知道吗

另外,不用regex“^.*”来匹配字符串,只需

for X in Keywords:
    if X in yourDictionary.keys():
        doSomething
    if X in yourDictionary.values():
        doSomethingElse

相关问题 更多 >