我有一個文本文件,其中包括這樣的臺詞:re.findall()不匹配與它的發現
<pattern number=1 theme=pseudo>
<pattern number=2 theme=foo>
<pattern number=3 theme=bar>
我選擇這個功能的隨機行:
def find_random_pattern(theme):
found_lines = []
pattern = open('poempatterns.txt','r')
for line in pattern:
found = re.findall("theme="+theme,line)
for match in found:
found_lines.append(line)
selectedline = random.choice(found_lines)
return selectedline
假設它返回<pattern number=1 theme=pseudo>
當我與此條件檢查,它返回False
if find_random_pattern("pseudo") == "<pattern number=1 theme=pseudo>":
return True
else:
return False
爲什麼這兩個字符串不匹配?
如果你只在'line'中檢查'theme = pseudo',那麼我真的不明白你爲什麼需要'regex',只需'in'就夠了 –
**提示:**如果您執行print(find_random_pattern(「pseudo」)),會發生什麼情況? (或'print(re.findall(...))'。) –