从名称python中删除前缀

2024-06-16 15:26:42 发布

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

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'等)从名称(这只是一个例子有很多前缀在这种格式)

输出外壳如下:

'SEBASTIÁN LASTIRI'

我试图:

^{pr2}$

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


Tags: namesrobertodanielingrodrguezdomingoburak
3条回答

您可以使用以下代码:

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]

输出:

^{pr2}$

一个简单的过滤器,只使用不带点的单词。在

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]

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

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']

相关问题 更多 >