用撇号作为词尾possib提取单词

2024-05-23 17:51:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了以下程序提取所有的模式(单词可能有连字符,标点符号)

sentence="Narrow-minded people are happy although it's cold ! I'm also happy" 
print(re.split('([^-\w])',sentence))

结果是:

^{pr2}$

问题是如何在一个词的末尾加上撇号。例如:我们希望检索"it'",而不是成对的"it", "'"。在


Tags: 程序模式it字符people单词aresentence
1条回答
网友
1楼 · 发布于 2024-05-23 17:51:48

您可以添加以撇号结尾的单词作为特殊情况:

print(re.split('([\w-]+\'|[^-\w])',sentence))

在这种情况下,句子分为

  • 一个或多个\w-字符的序列,后跟撇号([\w-]+\'部分)
  • 或者不是破折号或\w-字符的任何字符([^-\w]部分)

这将导致:

^{pr2}$

请注意,这确实增加了列表中的空字符串('')的数量,要去掉这些可以过滤列表的字符串:

print(filter(None, re.split('([\w-]+\'|[^-\w])',sentence))) 

结果是:

['Narrow-minded', ' ', 'people', ' ', 'are', ' ', 'happy', ' ', 'although', ' ', "it'", 's', ' ', 'cold', ' ', '!', ' ', "I'", 'm', ' ', 'also', ' ', 'happy']

相关问题 更多 >