我想分割一個文本,其中包含將文字拆分爲音節的斜線。 例如如何在Python中分割一首詩
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
result = re.split('; |/| |. |, ', text)
的問題是,我沒有得到正確的數音節,也沒有任何空間之前,最後一個字母!
請任何幫助!
我想分割一個文本,其中包含將文字拆分爲音節的斜線。 例如如何在Python中分割一首詩
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
result = re.split('; |/| |. |, ', text)
的問題是,我沒有得到正確的數音節,也沒有任何空間之前,最後一個字母!
請任何幫助!
在正則表達式中,"."
與任何字符匹配,所以". "
匹配"{any character}{space}"
。
要匹配文字時間段,您需要使用"\."
或將其放入字符集([.]
)中。
嘗試
syllables = re.compile("[.,:;!?]? |/").split
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
print(syllables(text))
這給
['Hi', 'I', 'do', "n'", 't', 'know', 'how', 'ma', 'ny', 'sy', 'lla', 'bu', 's', 'a', 're', '', 'the', 're', 'i', 'n', 'thi', 's', 'te', 'x', 'te', 'who', 'kno', 'w.']
如果我理解正確的話,你可以使用str.translate和正常分裂:
from string import maketrans
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
tr = maketrans("/,.'"," ")
print(text.translate(tr)).split()
['Hi!', 'I', 'do', 'n', 't', 'know', 'how', 'ma', 'ny', 'sy', 'lla', 'bu', 's', 'a', 're', 'the', 're', 'i', 'n', 'thi', 's', 'te', 'x', 'te', 'who', 'kno', 'w']
如果你想保持'
像do/n'/t
:
tr = maketrans("/,."," ")
print(text.translate(tr)).split()
['Hi!', 'I', 'do', "n'", 't', 'know', 'how', 'ma', 'ny', 'sy', 'lla', 'bu', 's', 'a', 're', 'the', 're', 'i', 'n', 'thi', 's', 'te', 'x', 'te', 'who', 'kno', 'w']
如果你想保留期限從maketrans刪除它也
@HughBothwell,我補充說,這只是在maketrans中包含'''的問題,或者不是 –
我同意;我只是把它指出來,看起來你已經在解決它了。 –
@HughBothwell,我原本是這麼想的,但是開始第二次猜測,從OP的問題中不完全清楚它應該是什麼。 –
你要輸出什麼? –