[英]How to add a new line before a capital letter?
我正在編寫一段代碼來從天才那里獲取歌詞。com。
我已經設法從網站上提取代碼,但它以一種所有文本都在一行上的格式出現。
我使用正則表達式添加空格,但無法弄清楚如何添加新行。 到目前為止,這是我的代碼:
text_container = re.sub(r"(\w)([A-Z])", r"\1 \2", text_container.text)
這會在大寫字母之前添加一個空格,但我不知道如何添加新行。
它正在回歸[Verse 1]Leaves are fallin' down on the beautiful ground I heard a story from the man in red He said, "The leaves are fallin' down
我想在命令行中的“他”之前添加一個新行。
任何幫助將不勝感激。 謝謝:)
如果genius.com 不以某種方式提供分隔符,那么很難找到一種方法來知道要查找的內容。
在您的示例中,我創建了一個搜索" [AZ]"
的正則表達式,它將找到“He...”。 但它也會找到句子以“I...”開頭的所有地方。 有時新句子會以“I...”開頭,但它可能會在實際上不應該有的地方換行。
TL;DR -genius.com 需要提供某種分隔符,以便我們知道何時應該有新行。
免責聲明:除非我在您的描述/示例中遺漏了某些內容
快速瀏覽一下天才歌詞頁面的源代碼表明您正在剝離所有 HTML 標記,否則這些標記將包含有關換行符等的信息。
您最好發布該代碼(可能作為一個單獨的問題)並詢問如何正確提取不僅是文本節點,而且還有足夠的<span>
結構以根據需要對其進行格式化。
環顧四周,我發現了一個 Python 必須從 Genius.com 提取歌詞的 API,這是 PyPI 的鏈接:
https://lyricsgenius.readthedocs.io/en/master/
只需按照說明進行操作,它應該有您需要的內容,並提供有關該問題的更多信息,我可以提供更詳細的回復
我不確定是否使用正則表達式。 試試這個方法:
text = lyrics
new_text = ''
for i, letter in enumerate(text):
if i and letter.isupper():
new_text += '\n'
new_text += letter
print(new_text)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.