python去掉括號之間的字符


在字符串中識別括號並刪除括號及其中的內容
括號包括 大中小 3種括號 
輸入為 1個字符串 s="我是一個人(中國人)[真的]{確定}"; 
輸出為 result = "我是一個人"

1.若括號為半角括號

常見的英文(半角)符號如( ) 直接用正則匹配即可

s="我是一個人(中國人)aaa[真的]bbbb{確定}"
a = re.sub(u"\\(.*?\\)|\\{.*?}|\\[.*?]", "", s)
print a

2.若括號為全角括號

全角字符(中文括號、標點),直接用正則匹配會存在問題:

因為編碼通常為為utf8,若直接匹配,中文括號的3字節編碼會和一些中文的字節編碼重復,產生意想不到的結果

若用decode轉為unicode編碼,則可避免產生錯誤結果,但也無法直接用正則匹配到

import sys  
reload(sys)  
sys.setdefaultencoding('utf8')  
import re  

s = u"我是一個人(中國人)aaa[真的]bbbb{確定}【ys】21"
a = re.sub(u"\\(.*?)|\\{.*?}|\\[.*?]|\\【.*?】", "", s.decode())
print a

這種方法本質上就是將正則的pattern字符和目標的編碼對應, 所以將正則的字符串也用unicode表示就可以


免責聲明!

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



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