zoukankan      html  css  js  c++  java
  • python正则替换中的unicode问题

    17-19,结论:对于unicode字符串,要用unicode正则字符串查找,unicode正则字符串的构成有两个要件,一是字符串本身由unicode字符构成,二是用'u'引导(python2);
    20-23,结论:对于str字符串,要用二进制正则字符串查找,用'r'引导,如果用'u'引导,因为并不包含unicode字符,其实际上不起作用,相当于'r';

    In [17]: %paste
    import re
    html = u"abcd 32人喜欢 efgh"
    html = re.sub(ur'(d+)u4ebau559cu6b22', r'<div class="like">1</div>', html)
    print html
    
    ## -- End pasted text --
    abcd <div class="like">32</div> efgh
    
    In [18]: %paste
    import re
    html = u"abcd 32人喜欢 efgh"
    html = re.sub(r'(d+)u4ebau559cu6b22', r'<div class="like">1</div>', html)
    print html
    
    ## -- End pasted text --
    abcd 32人喜欢 efgh
    
    In [19]: %paste
    import re
    html = u"abcd 32人喜欢 efgh"
    html = re.sub(r'(d+)xe4xbaxbaxe5x96x9cxe6xacxa2', r'<div class="like">1</div>', html)
    print html
    
    ## -- End pasted text --
    abcd 32人喜欢 efgh
    
    In [20]: %paste
    import re
    html = "abcd 32人喜欢 efgh"
    html = re.sub(r'(d+)u4ebau559cu6b22', r'<div class="like">1</div>', html)
    print html
    
    ## -- End pasted text --
    abcd 32浜哄枩娆?efgh
    
    In [21]: %paste
    import re
    html = "abcd 32人喜欢 efgh"
    html = re.sub(ur'(d+)u4ebau559cu6b22', r'<div class="like">1</div>', html)
    print html
    
    ## -- End pasted text --
    abcd 32浜哄枩娆?efgh
    
    In [22]: %paste
    import re
    html = "abcd 32人喜欢 efgh"
    html = re.sub(r'(d+)xe4xbaxbaxe5x96x9cxe6xacxa2', r'<div class="like">1</div>', html)
    print html
    
    ## -- End pasted text --
    abcd <div class="like">32</div> efgh
    
    In [23]: %paste
    import re
    html = "abcd 32人喜欢 efgh"
    html = re.sub(ur'(d+)xe4xbaxbaxe5x96x9cxe6xacxa2', r'<div class="like">1</div>', html)
    print html
    
    ## -- End pasted text --
    abcd <div class="like">32</div> efgh
    
    本文原创发表于http://www.cnblogs.com/qijj,转载请保留此声明。
  • 相关阅读:
    Vue+element UI实现“回到顶部”按钮组件
    JS判断字符串长度的5个方法(区分中文和英文)
    从vue源码看Vue.set()和this.$set()
    mac下git安装与使用
    JS数组reduce()方法详解及高级技巧
    vue中router.go、router.push和router.replace的区别
    上传及更新代码到github(以及如何在vscode上提交自己的代码)
    VSCode打开多个项目文件夹的解决方法
    get请求和post请求的区别
    android 进程的优先级
  • 原文地址:https://www.cnblogs.com/qijj/p/6383535.html
Copyright © 2011-2022 走看看