我在python初學者,當我運行下面的正則表達式,它被卡住我的Mac:錯誤的正則表達式在Python
re.search("^[A-Z]+([A-Z\w]+|\s)+$","Diploma in Fine Art from Royal School of Art & Design")
請讓我知道,如果我做的任何錯誤。
我在python初學者,當我運行下面的正則表達式,它被卡住我的Mac:錯誤的正則表達式在Python
re.search("^[A-Z]+([A-Z\w]+|\s)+$","Diploma in Fine Art from Royal School of Art & Design")
請讓我知道,如果我做的任何錯誤。
正則表達式寫入的方式很容易導致災難性的回溯問題,即([A-Z\w]+|\s)+
部分由於嵌套的+
量詞而引起該問題。您必須尋找一個
^[A-Z][a-z]*(\s+[A-Z][a-z]*)+$
它匹配
^
- 串[A-Z][a-z]*
- 一個大寫的字(\s+[A-Z][a-z]*)+
- 一個或多個大寫的用空格分隔的ASCII字$
- 字符串結尾。提示:總是測試你的模式與不匹配的模式(比如你的模式),因爲它們是最有問題的。
感謝您的解決方案。我試圖寫出一個正則表達式,它與每個單詞都有大寫字母的單詞序列相匹配(例如「皇家學校」)。 – user1487744
現在檢查它,它應該按預期工作。 –
「卡住」是什麼意思?它可以運行嗎?你有錯誤嗎?你有意想不到的輸出? –
這意味着災難性的回溯。 –
對不起,如果我不清楚。運行該命令後,我無法得到任何答案。感謝Wiktor提供解決方案。 – user1487744