当遍历列表时,将返回以下字符串的示例。我正在尝试将团队名称保存为变量。但是,对于列表中要检查的每个字符串,名称可以是任意数量的字符。
顺便说一句,在将总分保存为变量时,我通过
pointTotal = re.search("Total:" + '.\w+', eachEntry)
虽然这显然不适用于跨越多个单词的团队名称。
我的目标是对“名称:”之后的所有字符(也可以是数字)执行正则表达式搜索,直到到达竖线符号 (|)。最终我会得到 teamName = "Avacado Helmets"
..."|Keypad:6 |Name:Avacado Helmets |Pressed:E |Seconds:15.73 |Question Points:0 |Total:5802"
我希望这个问题不是太复杂,我一直在通过正则表达式测试器进行搜索以尝试找出答案,但我只是觉得我需要一些指导。我刚刚开始使用正则表达式,并为此进行编程,我将不胜感激任何帮助。谢谢。
最佳答案
您可以在此处使用带有捕获组的re.findall
:
inp = "|Keypad:6 |Name:Avacado Helmets |Pressed:E |Seconds:15.73 |Question Points:0 |Total:5802"
name = re.findall(r'\|Name:(.*?)\s*(?:\||$)', inp)[0]
print(name) # Avocado Helmets
关于python - 有没有一种方法可以使用正则表达式在关键字之后但到达 '|' 之前搜索 x 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70602621/