6
我正在嘗試在html載入文本的兩個主體之間產生一個人類可讀的類似wiki的區別。我使用的是diff-lcs,第一步是將字符串(字符數組)分成一組句子,但保留標點符號。將文本正文拆分爲句子,但保留標點符號?
"I am a lion. Hear me roar! Where is my cub? Never mind, found him.".magic_split(/[.?!]/)
# => "I am a lion." "Hear me roar!" "Where is my cub?" "Never mind, found him."
這應該做的伎倆
"I am a lion. Hear me roar! Where is my cub? Never mind, found him.".gsub(/[.?!]/, '\1|').split('|')
除了GSUB似乎有麻煩的插入字符.?!
。相反,它返回這
"I am a lion| Hear me roar| Where is my cub| Never mind, found him|"
什麼是最簡單的方法來做一個非破壞性拆分?正如它保留了它分裂的角色。
你會如何修改這個,如果你想追上一個句子結尾的「...」像「我是一頭獅子。聽我怒吼!我的幼崽在哪?不要緊,發現他......「 – michaelsking1993
我編輯過它,如下所示:'text.scan(/[^\.!?]+[\.!?]+/)map(& :strip)「唯一的問題就是沒有一段時間地抓住最後一句話:」我是獅子,聽到我咆哮!你叫什麼名字?不要評價我「,錯過了最後的」不要判斷我「 – michaelsking1993
Working solution:'text.scan(/[^\.!?]+[\.!?]+ | [^ \。!?] +。\ z /)。map(&:strip)'(there可能是更優雅的方式,但這是工作)。輸入:「我是獅子......聽到我咆哮!!你叫什麼名字?不要評價我」 - >輸出:「[」我是獅子......「」聽到我咆哮!!「 ,「你叫什麼名字?」,「不要判斷我」)「 – michaelsking1993