左删除字符串中第二个数字之前的任何内容

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

回答

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

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


以上是左删除字符串中第二个数字之前的任何内容的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>