用字符串变量中的一个新行替换多个空行

时间:2017-02-23 23:09:41

标签: string python-3.x

所以我有一个非常长的字符串,其中包含我只显示其中一部分的股票代码。

package Holiday; 

  public class Service{
   public String name;
   public double cost;
   public double payedOff;


  public static void main(String[] args){

// All servicess go here

Service camera = new Service();
 camera.name = "Camera";
 camera.cost = 1500;
 camera.payedOff = 0;


Service music = new Service();
  music.name = "Music";
  music.cost = 4000;

Service video = new Service();
 video.name = "Video";
 video.cost = 3000;
 video.payedOff = 3000;

Service hotel = new Service();
  hotel.name = "Hotel";
  hotel.cost = 2100;

Service transport = new Service();
 transport.name = "Transport";
 transport.cost = 2000;

Service car = new Service();
 car.name = "Car";
 car.cost = 200;



 if (????.payedOff >= ????.cost){
 System.out.println(????.name + " been payed off");
} else {
  System.out.println(????.name + " still need to pay");
}
}
}

我想摆脱在'OPHT'之前的第一个\ n(新行),以及减少多个换行组合在一起的新行。

如您所见,组合在一起的多个换行符的数量不是恒定的,而是从2到5不等(在原始字符串中甚至更多)。

似乎我不能只使用简单的`str.replace('\ n','')方法,因为它将摆脱所有的换行符,将所有的股票代码聚集在一起(我想要一个新行后每个股票代码) 我查看字符串文档,但我找不到一个str方法,可以让我干净利落地做我想做的事。

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

好的,我明白了:

如果x是我的字符串变量,那么

import re


x = re.sub(r'\n{2, 10}', '', x)   # \n is new line, {2,10} is the range of occurences of the newline that I'm searching for.

除了一个例外,这解决了问题。在某些情况下,尽管我只想要一个新行,但它正在删除所有新行。这导致某些代码被捆绑在一起,如下所示:

'GALE''CEMP'

所以我用另一个正则表达式来解决这个问题

import re


x = re.sub(r"''", "'\n'", x)

大多数情况下,现在一切都很好看。