1. 程式人生 > 其它 >python 正則表示式 按大寫字母、中文、特殊符號分離字串

python 正則表示式 按大寫字母、中文、特殊符號分離字串

python 正則表示式 按大寫字母、中文、特殊符號分離字串

import re

def split_except_alphabetDigitChinese(unicode_str):
    """
    @return:['matched str', '']
    """
    if type(unicode_str) != type(u''):
        try:
            unicode_str = unicode_str.decode('utf8')
        except:
            pass
        
    result 
= re.findall(u'[\u4e00-\u9fa5]+|[A-Z][a-z0-9]{2,}|[A-Z]{2,}(?![a-z])|(?![A-Z])[a-z][a-z0-9]{2,}',unicode_str) result = [t.strip() for t in result if t] #print(result) return result if __name__ == '__main__': print(split_except_alphabetDigitChinese(u'aa我們dll%Tools_exportImport like*unrealUPPERCASE09Desing09dddd
'))

列印:['我們', 'dll', 'Tools', 'export', 'Import', 'like', 'unreal', 'UPPERCASE', 'Desing09dddd']

有一些不完美,例如全是大寫的單詞後面的數字沒有匹配到,不過基本滿足需求。

{2,}控制了匹配長度,我這裡把2以下的長度過濾了,可以根據自己需求來修改。

由於象徵文字中文很難通過字面意思來區分單詞,所以中文在正則表示式方面去按單詞來匹配是很難做到的,不像英文,可以通過首寫大寫或者一些特殊符號來區分。

未經博主允許,禁止直接轉載本部落格任何內容(可以在文章中新增連結,禁止原文照搬),如需直接原文轉載對應文章,請在該文章中留言聯絡博主,謝謝!!