下面是一个示例:

se1 = pd.Series(['x whitet-shirtlarge 100% high-quality menshirt'])
se1.str.findall('t-shirt|[a-z]+').str.join(' ')


输出为:

x whitet shirtlarge high quality menshirt


我的预期输出是(请注意虚线T恤):

x whitet-shirtlarge high quality menshirt


如何实现我的预期输出?
谢谢。

附加说明:
下面的表达式将产生非常接近我预期的结果:

se1.str.findall('t-shirt|[a-z\s]').str.join('')


输出:

x whitet-shirtlarge  highquality menshirt


问题是“高”“质量”连在一起

最佳答案

您非常接近正确的答案。您要查找的正则表达式是't-shirt|[a-z-]+'。范围'-'中的破折号'[...]'被视为特殊符号,除非它是方括号中的第一个或最后一个字符。

10-01 05:28