因此,我正在创建一个程序,读取输入字符串,并查看它们是否包含列表中的代码。我试图使用正则表达式来获取匹配的字符串,但是我的正则表达式有点问题。以下是我的代码供参考:
import re
values = ["T1245F8", "T1267F8", "T1234F8"]
checkVals = ["rfgT12B45F8asd", "b65dT12B67F8lgkt", "4fgy7tgT12B34F8", "fgtrfT12B94F8fkg"]
for i in range(len(checkVals)):
match = False
parsedVal = re.match('T12B[0-9]{2}F8', checkVals[i])
for j in range(len(values)):
if parsedVal == values[j]:
match = True
print(match)
如果打印出3 True
和1 False
语句,我期望的输出。但是,不是获取4False
语句。你知道吗
编辑:修复了我的正则表达式中的一个拼写错误,但它仍然不起作用。你知道吗
从regexp中删除
$
,它匹配字符串的末尾,而字符串不以F8
结尾。另外,使用re.search
而不是re.match
。你知道吗我认为有两个问题
首先:
正则表达式末尾的
$
不允许后面有任何字符第二:
应该搜索
T12B
而不是T12
*也可能是在输入测试数据时创建了一个类型。例如
rfgT12B45F8asd
将与当前表达式不匹配,因为它包含T12B
作为数字的前缀,而不是T12
最终正则表达式:
T12B[0-9]{2}F8
这可能只是你问题帖子中的一个输入错误,但我想你的意思是:
那么,只要换一行:
对于这个:
这将为您提供匹配的实际零件。你知道吗
输出:
最后,整个代码应该如下所示:
我相信这就是你要找的。你知道吗
相关问题 更多 >
编程相关推荐