[英]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:
更好
您可以使用map
和any
进行稍微复杂的检查。
>>> 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.