python去掉括号之间的字符
2024-10-20 11:49:15
在字符串中识别括号并删除括号及其中的内容
括号包括 大中小 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表示就可以
最新文章
- Tomcat的下载和配置
- Nginx 配置 HTTP 强缓存
- git clone 失败问题解决方案
- Orchard Oracle 支持
- Mango DS Traning #49 ---线段树3 解题手记
- Java Executor并发框架(一)整体介绍
- SaltStack 最新版WebUI部署
- html multiple select option 分组
- Gnuradio 学习
- 虚拟机最佳实践:单个 VM、临时存储和已上传磁盘
- PHP学习笔记七【函数】
- Android——仿QQ聊天撒花特效
- 利用eclipse新建一个maven项目步骤:
- Wireshark网络端点和会话
- SQL Server2008从入门到精通pdf
- HDU 3966 Aragorn's Story(模板题)【树链剖分】+【线段树】
- AngularJS之拖拽排序(ngDraggable.js)
- 使用RMAN Active duplicate创建异地auxiliary Database
- sprintf()函数用法
- 开启Unity3D之旅