繁体   English   中英

Python:列表和字符串匹配

[英]Python: list and string matching

我有以下内容:

temp = "aaaab123xyz@+"

lists = ["abc", "123.35", "xyz", "AND+"]

for list in lists
  if re.match(list, temp, re.I):
    print "The %s is within %s." % (list,temp)

re.match只匹配字符串的开头,如何在中间匹配子字符串。

您可以使用re.search而不是re.match

在这里你似乎并不需要正则表达式。 您的正则表达式123.35可能无法达到预期效果,因为点匹配任何内容。

如果是这种情况,那么您可以使用x in s进行简单的字符串包含。

使用re.search或只使用if l in temp:

注意 :内置类型list不应该被遮蔽,因此for l in lists:更好

您可以使用mapany进行稍微复杂的检查。

>>> temp = "aaaab123xyz@+"
>>> lists = ["abc", "123.35", "xyz", "AND+"]
>>> any(map(lambda match: match in temp, lists))
True
>>> temp = 'fhgwghads'
>>> any(map(lambda match: match in temp, lists))
False

我不确定这是否比编译的正则表达式更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM