2015-05-09 36 views
2

當前我試圖實現一種方式來在字符串中每個單獨行的開始處輸入「>」。在新行的開頭是否有特定的輸入方法?

一個例子是:

字符串:

"Hello how are you! 

Python is cool!" 

現在,這都是一個大的字符串,用一個換行符。但是有沒有一個函數來確定換行的時間和地點?正如我上面所說的,我想在每一個新行的開頭加入一個「>」。像這樣:

字符串:

">Hello how are you! 

>Python is cool!" 

注:這個字符串不是永久設置,所以這就是爲什麼我將不得不解決這個問題。


希望這是有道理的,並感謝您的幫助!

+0

所以你的字符串是:''你好嗎?\ n \ nPython很酷'# –

+0

是的,從技術上講,它是@MalikBrahimi,儘管它設置了li克:'''你好嗎? (換行符)Python很酷!''' – Saroekin

回答

2

剛剛拆分線和CONCAT:

lines = """Hello how are you! 

Python is cool!""" 

for line in lines.splitlines(): 
    if line: 
     print(">" + line) 
    else: 
     print(line) 


>Hello how are you! 

> Python is cool! 

要獲得一個新的字符串,並保留換行設定keepends = TRUE:

new_s = "".join([">{}".format(line) if line.strip() else line 
      for line in lines.splitlines(True)]) 
print(new_s) 
>Hello how are you! 

> Python is cool! 

str.splitlines([keepends])

返回字符串中行的列表,在行邊界處斷開。此方法使用通用換行符方法來分割線條。換行符不包括在結果列表中,除非有指示並且爲真。

+0

@MalikBrahimi,它只是使用連接和設置keepends =真的 –

+0

是的,我猜你已經把它關閉了。就個人而言,即使沒有必要使用正則表達式。 –

+0

謝謝,這工作得很好!雖然謝謝大家的答覆,我很感激。 – Saroekin

1

使用正則表達式找到的非換行符組和插入>字符之前:

new_string = re.sub(r'[^\n]+', '>\g<0>', old_string) # be sure to import re 
1

這應該正是上班除了print你問:

def newprint(*args, **kwargs): to_print = " ".join([str(a) for a in args]) print(">", "\n> ".join(to_print.splitlines()), **kwargs)

相關問題