我希望将一个句子分成非单词字符(不包括短划线,可能意味着连字符)和连续破折号的单词列表。我的意思是:“旋转木马”是一个词,而不是三个词; “条件 - 但”是两个字:删除连续的破折号。
我尝试了以下操作但它不起作用:
listofwords = [word for word in re.split('[^a-zA-Z0-9]|-{2,}',sentence)]
我可以提供一个例句:
sentence = 'sample sentence---such as well-being {\t'
期望的结果是['样本','句子','这样','作为','幸福']。
答案 0 :(得分:2)
您可以使用此正则表达式:
\w+(?:-\w+)*
<强>代码:强>
p = re.compile(r'\w+(?:-\w+)*')
test_str = "sample sentence---such as well-being { "
re.findall(p, test_str)
<强>输出:强>
['sample', 'sentence', 'such', 'as', 'well-being']