我想創建一個Python函數,可以將文本分割成句子。我想分期(。),問號(?)或感嘆號(!)。然而,這個標準有一些例外,我認爲它是正則表達式。 pattern1到5用於排除,pattern6用於匹配。我想找到所有與pattern6匹配的模式,但不能匹配任何模式1到5.是否可以在Python正則表達式中這樣做?還是我沒有朝着正確的方向思考?結合多個正則表達式1匹配和排除
pattern1 = '\. [a-z]'
pattern2 = '\.\d'
pattern2 = '(Mr|Mrs|Dr|Jr)\. [A-Z]'
pattern4 = '[a-zA-Z]\.[a-zA-Z]'
pattern5 = '\.(\.|,)'
pattern6 = '\.[\s][A-Z]'
當我將模式1到5與|在pythex中,
pattern1|pattern2|patter3|pattern4|pattern5
我可以找到所有我想要排除的場景。然後我試着用排除他們^與pattern6相結合,得到一個非常醜陋的正則表達式:
(^((\. [a-z])|(\.\d)|((Mr|Dr|Jr|Mrs)\.[A-Z])|([A-Za-z]\.[A-Za-z])|(\.(\.|,))))|(\.[\s][A-Z])
這裏是
(^((pattern1)|(pattern2)|(pattern3)|(pattern4)|(pattern5)))|(pattern6)
這是工作在一定程度上,但未能與模式名稱取代了簡單的模式對於「史密斯先生」等案件,我剛開始學習正則表達式,所以請原諒我的髒代碼。希望能提供編寫良好可讀正則表達式的指南。
添加樣本輸入:
史密斯先生買cheapsite.com爲150萬美元,即他付出了很多 它。他介意嗎?小亞當瓊斯認爲他沒有。在任何情況下, 這是不正確的......好吧,以.9的概率它不是。
正確的輸出應該是句
不正確的輸出是在任何分裂的列表。不標記句子結尾
樣本輸入,樣本失敗輸出,樣本正確輸出? – roippi