簡體   English   中英

如何在大寫字母前添加新行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM