首页 > 解决方案 > left 删除字符串中第二个数字之前的任何内容

问题描述

a = "some rubish 2 some more rubish 2403 some street address, TX 4377435"

这是一些带有一些额外信息的地址字符串,我想去掉街道号码之前的所有内容,街道号码始终是右边的第二个号码。我想要输出为

"2403 some street address, TX 4377435"

到现在为止我可以想出这个

special_char = '!@#$%^&*()-_=+,./\\;:<>?{}[]|    '
ascii_letters  = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
a = "some rubish 2 some more rubish 2403 some street address, TX 77630409"
a.lstrip(ascii_letters+special_char)

这给出了输出

2 some more rubish 2403 some street address, TX 77630409

标签: python

解决方案


这是一个正则表达式拆分选项。我们可以在后面跟一个数字的任何空格处拆分输入字符串(使用前瞻来避免消耗该数字)。然后,拼接前两个元素并保留其余元素。最后,通过重新引入空格连接回单个字符串。

a = "some rubish 2 some more rubish 2403 some street address, TX 4377435"
parts = re.split(r'[ ](?=\d)', a)
print(' '.join(parts[2:]))  # 2403 some street address, TX 4377435

推荐阅读