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以下的長度過濾了,可以根據自己需求來修改。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM