我有这些字符串,例如:
['2300LO/LCE','2302KO/KCE']

我想要这样的输出:
['2300LO','2300LCE','2302KO','2302KCE']

如何在Python中使用Regex做到这一点?

谢谢!

最佳答案

您可以创建一个简单的生成器,为每个字符串生成对。然后,您可以使用itertools.chain()将它们展平为一个列表

from itertools import product, chain

def getCombos(s):
    nums, code = re.match(r'(\d+)(.*)', s).groups()
    for pair in product([nums], code.split("/")):
        yield ''.join(pair)

a = ['2300LO/LCE','2302KO/KCE']

list(chain.from_iterable(map(getCombos, a)))
# ['2300LO', '2300LCE', '2302KO', '2302KCE']


这具有附加的好处,或者可以使用'2300LO/LCE/XX/CC'这样的字符串,这将为您提供['2300LO', '2300LCE', '2300XX', '2300CC',...]

关于python - 正则表达式:用“/”分隔字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60699859/

10-09 08:49