2024-05-23 17:51:48 发布
网友
我写了以下程序提取所有的模式(单词可能有连字符,标点符号)
sentence="Narrow-minded people are happy although it's cold ! I'm also happy" print(re.split('([^-\w])',sentence))
结果是:
问题是如何在一个词的末尾加上撇号。例如:我们希望检索"it'",而不是成对的"it", "'"。在
"it'"
"it", "'"
您可以添加以撇号结尾的单词作为特殊情况:
print(re.split('([\w-]+\'|[^-\w])',sentence))
在这种情况下,句子分为
\w
[\w-]+\'
[^-\w]
这将导致:
请注意,这确实增加了列表中的空字符串('')的数量,要去掉这些可以过滤列表的字符串:
''
print(filter(None, re.split('([\w-]+\'|[^-\w])',sentence)))
['Narrow-minded', ' ', 'people', ' ', 'are', ' ', 'happy', ' ', 'although', ' ', "it'", 's', ' ', 'cold', ' ', '!', ' ', "I'", 'm', ' ', 'also', ' ', 'happy']
您可以添加以撇号结尾的单词作为特殊情况:
在这种情况下,句子分为
\w
-字符的序列,后跟撇号([\w-]+\'
部分)\w
-字符的任何字符([^-\w]
部分)这将导致:
^{pr2}$请注意,这确实增加了列表中的空字符串(
''
)的数量,要去掉这些可以过滤列表的字符串:结果是:
相关问题 更多 >
编程相关推荐