我想在字符串的最后一个小写字母处拆分字符串。字符串总是至少有一个小写字母。最后一个小写字母后总会有一个空格。字符串中可能有数字。
这是我想到的最好的:
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:]
关于Python:在最后一个小写字母处拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29031083/