我有这些字符串,例如:['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/