【发布时间】:2022-08-24 20:19:24
【问题描述】:
我正在尝试分解 twitter 主题标签以提取组成它的单词。我很难找到一个可以令人满意地做到这一点的正则表达式,主要是由于作者在大写中的“过度创造力”。
一些例子:
#itsAHashtag -> [\'its\', \'a\', \'hashtag\']
#GlazersOutNOW -> [\'glazers\', \'out\', \'now\']
#COVIDIsNotOver -> [\'covid\', \'is\', \'not\', \'over\']
我该怎么做?
-
你必须严格定义它是如何工作的。我猜你把每个大写字母都分开了?但是你怎么知道,比如
COVIDIs把COVID放在一起而不把Is放在一起呢? -
一个单词可以由多个大写字母组成,但它也总是以大写字母开头(第一个除外,紧跟在 \'#\' 字符之后)。对于标签“#COVIDIsNotOver”,最后一个 I 是一个新单词的开头,而不是第一个单词的一部分。如果连续有两个以上的大写字母,则认为它们构成了一个单词,直到找到的倒数第二个大写字母。
-
如果我理解正确的话,那么多个大写字母的策略是贪婪地将它们塞进一个单词中,然后取出最后一个用于下一个单词?
-
@EricJin 正是
-
#metoo 呢?我认为这不能通过任何简单的分解例程(如正则表达式)可靠地完成。这取决于你的目的,你是否有能力用这样的方法解决。也就是说,要求图书馆的问题在 Stack Overflow 上被认为是题外话。
标签: python regex twitter hashtag