我目前正在学习Python,我正在尝试破译我在网上找到的代码。代码的要点是将原始字符串与用户输入键进行比较,如果匹配,则返回原始字符串。
我在尝试理解re.findall()
在此代码中做了什么时遇到了问题
因此head [0]包含数据字符串
('2016-12-22 06:28:36',u'Kith x New Era K 59FIFTY Cap - Pink', 的u 'http://kithnyc.com/products/kith-x-new-era-59fifty-cap-pink')
键包含原始字符串
键= r'Nike |超'
head = self.data
for k in key:
print k
flag=re.findall(k,str(head[0]),flags=re.I)
print len(flag)
if len(flag)>4:
print head[0]
根据我的理解,代码的目的是循环键并查看它是否与head [0]匹配。如果匹配,则返回head [0]。然而,它仍在返回,头[0]
('2016-12-22 06:28:36',u'Kith x New Era K 59FIFTY Cap - Pink', 的u 'http://kithnyc.com/products/kith-x-new-era-59fifty-cap-pink')
即使它不匹配。
答案 0 :(得分:1)
如果项目与关键字正则表达式匹配,则假设打印在头部。
然后使用following code:
import re
head = ('2016-12-22 06:28:36', 'nike item', 'ultra item', 'Kith x New Era K 59FIFTY Cap - Pink', 'http://kithnyc.com/products/kith-x-new-era-59fifty-cap-pink')
key=r'Nike|Ultra' # This is a regex pattern, matches `Nike` or `Ultra`
for s in head: # Iterate the items in head
if re.search(key, s, flags=re.I): # Search for a match in each item, case insensitively
print(s) # Print if found
输出:nike item
和ultra item
。
在代码中,使用for k in key:
循环遍历模式的字符。使用re.findall
,搜索了所有非重叠匹配项,以匹配k
中的单个字符,仅检查head[0]
,不考虑所有其他项目。