在字符串中识别括号并删除括号及其中的内容
括号包括 大中小 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表示就可以

最新文章

  1. Tomcat的下载和配置
  2. Nginx 配置 HTTP 强缓存
  3. git clone 失败问题解决方案
  4. Orchard Oracle 支持
  5. Mango DS Traning #49 ---线段树3 解题手记
  6. Java Executor并发框架(一)整体介绍
  7. SaltStack 最新版WebUI部署
  8. html multiple select option 分组
  9. Gnuradio 学习
  10. 虚拟机最佳实践:单个 VM、临时存储和已上传磁盘
  11. PHP学习笔记七【函数】
  12. Android——仿QQ聊天撒花特效
  13. 利用eclipse新建一个maven项目步骤:
  14. Wireshark网络端点和会话
  15. SQL Server2008从入门到精通pdf
  16. HDU 3966 Aragorn's Story(模板题)【树链剖分】+【线段树】
  17. AngularJS之拖拽排序(ngDraggable.js)
  18. 使用RMAN Active duplicate创建异地auxiliary Database
  19. sprintf()函数用法
  20. 开启Unity3D之旅

热门文章

  1. review17
  2. PyCharm 的升级、设置快捷方式
  3. 存储过程,游标,异常捕捉 try catch 实例代码
  4. mysql 自增长 AUTO_INCREMENT
  5. leetcode 645. Set Mismatch——凡是要节约空间的题目 都在输入数据上下功夫 不要担心破坏原始的input
  6. 使文字出现波纹效果--第三方开源--Titanic
  7. (转)android头像设置:从本地照片库或拍照获取并剪裁
  8. 面试题42:翻转单词顺序VS左旋转字符串
  9. hibernate.spring.xml
  10. 20165210 Java第三次实验报告