我有一個藝術家,專輯和曲目列表,我想用它們各自名稱的第一個字母排序。當我想忽略「The」,「A」,「An」和其他各種非字母數字字符(與您對話「奇怪的Al」揚科維奇和[對話])時,問題就會到來。 Django有一個很好的開始'^(An?| The)+',但我想忽略那些和我選擇的其他幾個人。匹配第一個字母數字字符跳過(The | An?)
我這樣做是在Django中,使用一個MySQL數據庫與utf8_bin整理。
編輯
那麼我沒有提及這一點,但數據庫我訪問故障是非常俱備只。它是由Amarok創建和維護的,我不能在沒有一堆問題的情況下改變它。這是說藝術家表有The Chemical Brothers
列爲The Chemical Brothers
所以我認爲我卡在這裏。這可能會很慢,但這不是我個人關心的問題,因爲這是個人項目。
提供更多信息。你想在哪裏進行分類?在SQL或Python?你想丟棄這些條目,還是隻有前綴? – 2010-04-10 20:52:12
我個人會創建一個名爲「prefix」的列,然後遍歷每一行並分離出前綴(如果有的話)。然後在「名稱」列上排序 - 不管它是什麼。你總是可以將名字拼湊在一起。像pi一樣容易。 – 2010-04-10 20:53:30
@Hamish我無法改變數據庫。我可能會拉出值使用Django的__regex相當於'WHERE title REGEXP'^(一個?| the)+';'或者沿着這些線。 – TheLizardKing 2010-04-10 22:00:44