python - 如何提取名字和姓氏的非大写字符串元素?

标签 python regex string extract

我有以下形式的字符串

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/

相关文章:

Python 时间日期匹配

python - sqlite - 一次插入多个值

python - 从 python 中的缩进字符串创建计数数组

javascript - 匹配更多可能性的正则表达式(javascript)

Java 正则表达式验证

python - PySpark:如何将具有 SparseVector 类型列的 Spark 数据帧写入 CSV 文件?

javascript - 正则表达式查找逗号后跟非空白字符

java - Eclipse 文件搜索对话框 - 组联合和否定的正则表达式

c - 替换字符串的单个字符元素 C

php - 替换字符串出现