zoukankan      html  css  js  c++  java
  • 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表示就可以

  • 相关阅读:
    angular js 自定义指令
    web api 解决跨域的问题
    angular 监听ngrepeat结束时间
    redis关闭和启动
    intellij idea快捷键
    mysql连接字符串
    crontab命令格式
    maven中scope属性的
    maven pom文件元素说明
    引入maven以外的jar包
  • 原文地址:https://www.cnblogs.com/lzhc/p/8744299.html
Copyright © 2011-2022 走看看