正则表达式+python挑战!争论数据那是阿尔莫斯特雷古

2024-09-29 18:51:04 发布

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

我很抱歉把这个贴出来,但是我已经花了很多时间来写这个,但是没有成功。因此,正则表达式+Python的一个挑战是:

我处理的数据大多是有规律的格式。公司列表组合成一个字符串

`Company Inc,Company, LLC,Company` 

没有引号来描述条目。使用上述常规示例,我可以:

^{pr2}$

不幸的是,有些字符串的格式不规则,如:

`IBP, Inc,Tyson Foods,Inc.`

其中,Inc与{}之间没有空格分隔。所以,使用r',\b',我得到了:

>>> re.split(r',\b', 'IBP, Inc,Tyson Foods,Inc.')
['IBP, Inc', 'Tyson Foods', 'Inc.']

我想要这个:

['IBP, Inc', 'Tyson Foods,Inc.']

在这种情况下你会怎么做?在


Tags: 数据字符串列表格式时间公司条目company
3条回答

把Mike M的回答换成稍微不同的术语,如果你能建立一个可靠的非相关令牌列表,比如'Inc'、'Inc'和'LLC',那么你就有了一种解析的方法。即使这样,您可能也不会得到像split()这样的自动方法来为您工作。你可能得自己动手了。在

如果知道的话,您可以将分割预防字符串添加到否定的lookahead中

r',\b(?!Inc\.)'

我会在逗号上进行第一次拆分,以获得以下列表:

['IBP', 'Inc', 'Tyson Foods', 'Inc.']

然后对数据进行第二次传递,在这些数据中,极不可能的公司名称(如“Inc”、“Inc.”、“LLC”、“GmbH”等)与列表中的前一项相结合:

^{pr2}$

如果以后发现数据中有“Farmers Group,The”之类的条目,并将文章放在正确的位置,则此方法还可以让您进行更复杂的操作。在

相关问题 更多 >

    热门问题