python:虚词和单词

python:虚词和单词,python,regex,Python,Regex,以下是一个例子: 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-shirt): 如何实现我的预期产出? 多谢各位 补充说明: 下面的表达式将产生非常接近我预期的结果: se1.str

以下是一个例子:

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-shirt):

如何实现我的预期产出? 多谢各位

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

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

x whitet-shirtlarge  highquality menshirt

问题是“高质量”被连接到一个词中

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

您是否试图将所有
-
(破折号)替换为“`”(空格),除了
t-shirt
一词中的
-
?@Haleemulari非常接近。我只想保留字母([a-z])和定义的虚词(本例中为“t恤”)。在regexr.com中测试时,我的表达式似乎有效,但在python中失败了。为什么这是标记为pandas的?
t-shirt |[a-z-]+
将生成
x white-shirtlarge高质量男式衬衫
,请注意,
高质量
中的破折号是不需要的。
x whitet-shirtlarge  highquality menshirt