首先,独立日快乐!给那些申请的人!
我正在分析一个从头算图,为此,我需要获得组件的名称,开发人员用来描述它的功能,我可以从下面的行中提取它。
name ='}}@0|@207000|80000|227000|100000|152000|126000|11654|RFMT: Generate Labels Header|Ab Initio Software|Built-in|1|100|0||6||32769|1|{1|0|}}}'我尝试使用regex提取组件的名称,即:RFMT: Generate 。
问题来了:
我的分隔符为_软件_有没有办法用Python实现这个功能。
我想出的最有效的解决方案是扭转一切。
name = line[::-1]
name = re.search('erawtfoS oitinI bA\|(.*?)\|', name, re.IGNORECASE).group(1)
name = name[::-1]我只想让它更高效,因为它将被用于数百个图表,而其中的大多数文件都相当大。
发布于 2013-07-04 17:28:09
您只需匹配非|字符,并使用围城确保它是Ab Initio...之前的元素。
re.search(r'(?<=[|])[^|]*(?=[|]Ab Initio Software)', name, re.IGNORECASE).group()即使没有前瞻性,如果只将(.*?)更改为更显式的[^|]*,也会得到正确的结果。但贪婪的前瞻性解决方案可能更有效。总之,这里是:
re.search(r'[|]([^|]*)[|]Ab Initio Software', name, re.IGNORECASE).group(1)https://stackoverflow.com/questions/17475563
复制相似问题