从名称python中删除前缀

时间:2015-04-01 08:04:21

标签: python regex string formatting format

names = [
'LIC. SEBASTIÁN LASTIRI',
'ING. AGR. ROBERTO DANIEL RODRÍGUEZ',
'C.P.N. JULIO DOMINGO BURAK',
'INGENIERO HIDRÁULICO VÍCTOR AGUSTÍN PORRINO'
]

我有这样的名单列表,我需要从名称中删除类似('lic','c.p.n'等)的前缀(这只是样本,这种格式有很多前缀)

输出shell如下:

  

'SEBASTIÁNLASTIRI'

我试过:

for i in names:
   if '.' in i:
        i.split('.')[1]

但只有在前缀中有一个点时它才有效 如何解决这个问题

3 个答案:

答案 0 :(得分:1)

以下是您的问题的解决方案:

import re

names = [
    'LIC. SEBASTIÁN LASTIRI',
    'ING. AGR. ROBERTO DANIEL RODRÍGUEZ',
    'C.P.N. JULIO DOMINGO BURAK',
    'INGENIERO HIDRÁULICO VÍCTOR AGUSTÍN PORRINO'
]

new_names = [re.sub("^\s+", "", i.split(".")[-1]) for i in names]

print new_names # [SEBASTIÁN LASTIRI', ROBERTO DANIEL RODRÍGUEZ', JULIO DOMINGO BURAK', 'INGENIERO HIDRÁULICO VÍCTOR AGUSTÍN PORRINO']

答案 1 :(得分:0)

您可以使用以下代码:

import re    

names = [
'LIC. SEBASTIAN LASTIRI',
'ING. AGR. ROBERTO DANIEL RODRIGUEZ',
'C.P.N. JULIO DOMINGO BURAK',
'INGENIERO HIDRAULICO VICTOR AGUSTIN PORRINO'
]
for i in names:
    res = re.split(r'\.\s*(?=[^.]+$)', i)
    if len(res) > 1:
        print res[1]
    else:
        print res[0]

输出:

SEBASTIAN LASTIRI                                                                                                                                                                                                                                      
ROBERTO DANIEL RODRIGUEZ                                                                                                                                                                                                                               
JULIO DOMINGO BURAK                                                                                                                                                                                                                                    
INGENIERO HIDRAULICO VICTOR AGUSTIN PORRINO 

答案 2 :(得分:0)

一个简单的过滤器,最后只使用没有点的单词。

names = [
    'LIC. SEBASTIÁN LASTIRI',
    'ING. AGR. ROBERTO DANIEL RODRÍGUEZ',
    'C.P.N. JULIO DOMINGO BURAK',
    'INGENIERO HIDRÁULICO VÍCTOR AGUSTÍN PORRINO'
]

names_formated = [' '.join([sub for sub in name.split() if sub[-1] != '.']) for name in names]