Python 如何根据行的第一个字符向上移动字符串?

Python 如何根据行的第一个字符向上移动字符串?,python,regex,string,Python,Regex,String,我正在尝试获取Python文本文件中所有不以数字开头的行的内容,以移动到以数字开头的第一行,如下例所示: 文件中的数据如下所示 1 Bananas and Tea 25 2 Chocolate and Tea 24 3 Ice cream 4 Bread, sour cream, socks and pants 45 我试图实现的是将文件中的数据修改为: 1 Bananas and Tea 25 2 Chocolate and Tea 24 3 Ice cream 4

我正在尝试获取Python文本文件中所有不以数字开头的行的内容,以移动到以数字开头的第一行,如下例所示:

文件中的数据如下所示

1   Bananas and Tea 25
2   Chocolate
and Tea 24
3   Ice cream
4 Bread, sour cream,
socks
and pants 45
我试图实现的是将文件中的数据修改为:

1   Bananas and Tea 25
2   Chocolate and Tea 24
3   Ice cream
4   Bread, sour cream, socks and pants 45

Regex是您的朋友:

>>> input = "1   Bananas and Tea 25\n2   Chocolate \nand Tea 24\n3   Ice cream\n4 Bread, sour cream, \nsocks \nand pants 45"
>>> re.sub("\n(?![0-9]+)", "", input)
'1   Bananas and Tea 25\n2   Chocolate and Tea 24\n3   Ice cream\n4 Bread, sour cream, socks and pants 45'