Skip to main content
 首页 » 编程设计

Python:在最后一个小写字母处拆分字符串

2025年05月04日22luoye11

我想在字符串的最后一个小写字母处拆分字符串。字符串总是至少有一个小写字母。最后一个小写字母后总会有一个空格。字符串中可能有数字。

这是我想到的最好的:

s = 'Arrived at location NEWARK NJ US' 
for i, c in enumerate(reversed(s)): 
    if c.islower(): 
        d = len(s) - i 
        break 
a = s[:d] 
b = s[d+1:] 

是否有更简单或更 pythonic 的方法?也许是可读的正则表达式?

请您参考如下方法:

关于:

s = 'Arrived at location NEWARK NJ US' 
pos = re.search("[a-z]", s[::-1]).start() 
a, b = s[:-pos], s[1 - pos:] 

a、b 的结果:

Arrived at location 
NEWARK NJ US 

思路是通过搜索反转字符串找到最后一个小写字母的位置。

如果您希望在最后一个小写字母后有多个空格:

start, end = re.search("\s+[a-z]", s[::-1]).span() 
a, b = s[:1 - end], s[-start:]