我有大量的实际文本,需要将单词拉出来以输入到拼写检查器中。我想尽可能多 地 提取 有意义的
单词,而不会产生太大干扰。我知道这附近有很多正则表达式忍者,所以希望有人可以帮助我。
目前,我正在使用提取所有字母序列'[a-z]+'
。这是一个很好的近似值,但是它却拖走了很多垃圾。
理想情况下, 我想要一些正则表达式(不一定漂亮或高效),该正则表达式提取由自然词分隔符(例如,[/-_,.: ]
等等)定界的所有字母序列,并忽略任何带有非法边界的字母序列。
但是,我也很高兴能够获得不与数字相邻的所有字母序列。因此,例如'pie21'
将不会提取'pie'
,但'http://foo.com'
会提取['http', 'foo', 'com']
。
我尝试了lookahead
和lookbehind
断言,但是它们是按字符应用的(例如re.findall('(?<!\d)[a-z]+(?!\d)', 'pie21')
,'pi'
当我希望它不返回任何内容时将返回)。我尝试将alpha部分包装为术语((?:[a-z]+)
),但没有帮助。
更多细节:
数据是一个电子邮件数据库,所以它主要是用正常的数字简单的英语,但偶尔也有垃圾串像GIHQ4NWL0S5SCGBDD40ZXE5IDP13TYNEA
和AC7A21C0
我想完全忽略。我假设其中带有数字的任何字母顺序都是垃圾。
如果将自己限制为ASCII字母,则使用(re.I
设置了选项)
\b[a-z]+\b
\b
是单词边界锚点,仅在字母数字“单词”的开头和结尾匹配。如此\b[a-z]+\b
匹配pie
,但不是pie21
或21pie
。
要也允许其他非ASCII字母,可以使用如下所示的内容:
\b[^\W\d_]+\b
这也允许带重音符号的字符。您可能需要设置该re.UNICODE
选项,尤其是在使用Python 2时,以允许\w
速记匹配非ASCII字母。
[^\W\d_]
否定的字符类允许除数字和下划线外的任何字母数字字符。
在我的数据框架中,有一列名为“teams”。它包括城市和球队名称。我想把这个城市拉进另一个纵队。这是数据帧:数据帧示例 我可以使用正则表达式轻松提取列: 然而,在“名称”栏中,对于纽约尼克斯队,它只给了我“New”的值,我想得到“New York”: 结果 那么,我该怎么做呢?如果单元格有2个单词,我该如何从开头只提取一个单词?如果单元格有3个单词,我该如何使用正则表达式从中提取2个单词?
我必须提取两个值(最小
null 如何在employee实体中只取Dept.name列而不是整个Department行(需要避免对Department进行的大量集合进行急切的取数)?如果是,我应该使用什么注释? 如何在此方案中处理级联?
问题内容: 我正在尝试创建一个将信息存储在组件的状态变量中的输入表单,然后在屏幕上输出该变量。我阅读了有关受控组件的文档,这就是我在这里尝试的内容。 我的主要问题是,当我单击提交时,正确的文本出现在屏幕上,但是随后整个页面都会刷新,我不确定为什么。从我在网上阅读的内容看,这似乎是一个解决方案,但我的理解是,我可以使用该组件或受控组件。 问题答案: 只需调用方法即可防止表单的默认行为
本文向大家介绍grep 匹配整个单词,包括了grep 匹配整个单词的使用技巧和注意事项,需要的朋友参考一下 示例 给定一个文件sample: grep“ hello”的法线返回: 使用-w允许选择包含构成整个单词的匹配项的行:
我正在制作一个小型java swing应用程序,我必须在ScrollPane中创建一个带有gridBagLayout的表。 首先,GridBagLayout没有在面板的顶部对齐。 第二,如果我将(1,2,3,4)单元格居中,则它们居中在面板的中间(而不是单元格的中间)。 这是我的代码: