左删除字符串中第二个数字之前的任何内容
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