提取整个单词
|
我有大量的实际文本,需要将单词拉出来输入到拼写检查器中。我想尽可能多地提取有意义的词,而又不要过多干扰。我知道这附近有很多正则表达式忍者,所以希望有人可以帮我。
目前,我正在提取带有“ 0”的所有字母序列。这是一个很好的近似值,但是它却拖走了很多垃圾。
理想情况下,我想要一些正则表达式(不一定漂亮或高效),该正则表达式提取由自然词分隔符(例如ѭ1limited等)界定的所有字母序列,并忽略任何带有非法边界的字母序列。
但是,我也很高兴能够获得不与数字相邻的所有字母序列。因此,例如
\'pie21\'
不会提取\'pie\'
,而\'http://foo.com\'
则会提取[\'http\', \'foo\', \'com\']
。
我尝试了lookahead
和lookbehind
断言,但它们是按字符应用的(例如,ѭ8want将在我不希望返回任何内容时返回ѭ9return)。我尝试将alpha部分包装为一个词((?:[a-z]+)
),但没有帮助。
更详细的信息:数据是电子邮件数据库,因此它大部分都是纯英语的普通数字,但偶尔我会完全忽略诸如GIHQ4NWL0S5SCGBDD40ZXE5IDP13TYNEA
和AC7A21C0
这样的垃圾字符串。我假设其中带有数字的任何字母顺序都是垃圾。
没有找到相关结果
已邀请:
4 个回复
芭隘的盘石
选项)
是单词边界锚点,仅在字母数字\“ words \”的开头和结尾匹配。因此,
与
相匹配,但与
或
不匹配。 要也允许其他非ASCII字母,可以使用如下所示的内容:
这也允许带重音符号的字符。您可能需要设置
选项,尤其是在使用Python 2时,才能允许
速记来匹配非ASCII字母。
作为否定字符类,允许数字和下划线以外的任何字母数字字符。
郡晒景沧
)。您可以使用序列周围的ѭ15并在其中匹配字母来提取单词:
例如,这将捕获整个单词,但停在诸如连字符,句号,分号等标记处。 您可以在Python手册中查看
序列以及其他内容 编辑此外,如果您要查找比赛前后的数字,则可以在前面/后面使用负数:
济畦刨
注意: split将您的字符串分解为潜在的候选者=>返回“潜在词”列表 set使唯一性过滤=>转换set中的列表,从而删除出现多次的条目。此步骤不是必需的。 filter减少了候选人的数量:获取一个列表,对每个元素应用测试功能,并返回测试通过的元素的列表。在我们的例子中,测试功能为“匿名” lambda:匿名函数,获取一个项目并检查它是否是单词(仅适用于大写或小写字母) 编辑:添加了一些说明
妒垮
要么