我有以下形式的字符串
NAME Firstame
我想获得 Firstname
部分。字符串可以更复杂(LAST LAST2 First First2
)。规则是大写元素是姓氏,其余是名字。我们可以假设第一部分是大写(= 姓氏),当它开始混合大小写时,它是名字直到结尾。
我确信 [A-Z]
和 \w
的正确正则表达式组合会起作用。我想到的最好的是
import re
re.findall('[A-Z]*\w+', 'LAST LAST2 First First2')
但它返回几乎正确的解决方案(['LAST', 'LAST2', 'First', 'First2']
):)
在 Python 中将这个名字提取为一个字符串的好方法是什么?
最佳答案
我想提出一个非正则表达式的解决方案:
string = 'LAST LAST2 First First2'
words = string.split(' ') # equals ['LAST', 'LAST2', 'First', 'First2']
result = []
for word in words:
if not word.isupper():
result.append(word)
print(' '.join(result))
结果:
First First2
关于python - 如何提取名字和姓氏的非大写字符串元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20947487/