gpt4 book ai didi

python - 在 python 中的 re.match 中使用变量

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:52 25 4
gpt4 key购买 nike

我正在尝试创建一组内容以在描述行中进行匹配。所以我可以稍后在我的脚本中忽略它们。下面是我一直在研究的示例脚本。

基本上,我试图获取一堆字符串并将其与一堆其他字符串进行匹配。

又名: 字符串中的 asdf 或 asfs 或 wrtw = true 继续脚本 如果不打印这个。

import re

ignorelist = ['^test', '(.*)set']

def guess(a):
for ignore in ignorelist:
if re.match(ignore, a):
return('LOSE!')
else:
return('WIN!')

a = raw_input('Take a guess: ')
print guess(a)

谢谢

最佳答案

你有一点逻辑/流程问题。

您测试列表中的第一项。如果不匹配,您将转到 else 并返回 "WIN!",而不测试列表中的任何其他项。

(此外,ignorelist 在函数之外。)

[编辑:我看到您编辑了问题以包含正则表达式,所以我将把答案编辑回 re 上下文...] 请注意,您应该如果你想给它实际的正则表达式,请使用 re.search 而不是 re.match 因为 re.match 只匹配行的开头.

有无数种方法可以改变这一点,具体取决于您希望程序如何工作。

我会按照这些思路重写guess。 (您也可以将 ignorelist 放在函数内部而不是传递它。):

ignorelist = [r'^test', r'[abc]set']

def guess(a,il):
for reg in il:
if re.search(reg,a):
return "LOSE"
return "WIN"

a = raw_input()
print guess(a,ignorelist)

在这种情况下,它将循环遍历每个单词,如果找到匹配项则退出,但如果没有(完成循环而不返回任何内容)那么它最终将返回 "WIN" .

关于python - 在 python 中的 re.match 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19462063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com