gpt4 book ai didi

Python 重新 : Storing multiple matches in variables

转载 作者:太空狗 更新时间:2023-10-29 22:16:27 26 4
gpt4 key购买 nike

我想匹配字符串的不同部分并将它们存储在单独的变量中供以后使用。例如,

string = "bunch(oranges, bananas, apples)"
rxp = "[a-z]*\([var1]\, [var2]\, [var3]\)"

所以我有

var1 = "oranges"
var2 = "bananas"
var3 = "apples"

类似于 re.search() 所做的事情,但针对同一匹配项的多个不同部分。

编辑:事先不知道列表中的水果数量。应该把这个和问题放在一起。

最佳答案

这就是 re.search 所做的。只需使用捕获组(括号)访问稍后与某些子模式匹配的内容:

>>> import re
>>> m = re.search(r"[a-z]*\(([a-z]*), ([a-z]*), ([a-z]*)\)", string)
>>> m.group(0)
'bunch(oranges, bananas, apples)'
>>> m.group(1)
'oranges'
>>> m.group(2)
'bananas'
>>> m.group(3)
'apples'

另请注意,我使用原始字符串来避免双反斜杠。

如果您在 bunch 中的“变量”数量可以变化,那么您就有问题了。大多数正则表达式引擎无法捕获可变数量的字符串。但是在那种情况下你可以逃避这个:

>>> m = re.search(r"[a-z]*\(([a-z, ]*)\)", string)
>>> m.group(1)
'oranges, bananas, apples'
>>> m.group(1).split(', ')
['oranges', 'bananas', 'apples']

关于Python 重新 : Storing multiple matches in variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13444675/

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