我想出的解决方案见底部。
希望这对你们来说是一个简单的问题。尝试将字符串与列表匹配并仅打印匹配的字符串。我成功使用了 re,但它在句号之后切断了字符串的其余部分。每个 re 的跨度是 0,10,当我在不使用 re 的情况下查看输出时,它是 0,14 而不是 0,10,所以匹配会在这段时间之后切断信息。所以我想学习如何告诉它打印整个跨度或学习一种将 var 字符串匹配到列表并打印确切字符串的新方法。我最初的尝试打印了带有 TESTPR 的任何内容,总共打印了 3 个,我不想打印的其他内容在前面有一个 1,最后一场比赛最后有一个额外的 R。这是我当前的匹配代码:
#OLD See below
for element in catalog:
z = re.match("((TESTPRR )\w+)", element)
if z:
print((z.group()))
Output: TESTPR 105
它应该显示:
Wanted output: TESTPT 105.465
句号后最多保留 3 位小数,仅此而已。我目前正在上一门 Python 课程来学习 Python,并且到目前为止我很喜欢它,但是这门课让我很难过,因为我刚刚通过阅读来学习 re 和匹配,因为我们还没有在课堂上学习过。
我愿意学习一种不同的方法来搜索和匹配一个字符串并只打印那个字符串。对于我打印 3 个结果的第一次尝试是这样的:
catalog = [ long list pulled from API then code here to make it a nice column]
prod = 'TESTPR'
print ([s for s in catalog if prod in s])
当我在 prod 的末尾添加一个空格时,我可以摆脱末尾带有额外字符的匹配,但我不能添加一个空格来对前面有额外字符的匹配做同样的事情。这是针对上面的代码,而不是针对重新匹配代码。谢谢!
下面回答!