• python正则中如何匹配汉字以及encode(‘utf-8’)和decode(‘utf-8’)的互转


    正则表达式:
      [u2E80-u9FFF]+$ 匹配所有东亚区的语言 
      [u4E00-u9FFF]+$ 匹配简体和繁体 
      [u4E00-u9FA5]+$ 匹配简体 
      <input type="text" name="username" onkeyup="value=value.replace([u4E00-u9FA5]+$)">

    正则表达式速查表:https://www.jb51.net/shouce/jquery1.82/regexp.html

     1  1 # -*- coding:utf-8 -*-
     2  2 
     3  3 import re
     4  4 
     5  5 '''
     6  6 python 3.5版本
     7  7 正则匹配中文,固定形式:u4E00-u9FA5
     8  8 '''
     9  9 
    10 10 words = 'study in 山海大学'
    11 11 regex_str = ".*?([u4E00-u9FA5]+大学)"
    12 12 match_obj = re.match(regex_str, words)
    13 13 if match_obj:
    14 14     print(match_obj.group(1))
    15 15 
    16 16 
    17 17 结果:山海大学

    这里面表示的是一个正则表达式语句的啦,http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

    Python添加对Unicode的支持,以Unicode表示的字符串用u’ABC’来表示。
    字符串’xxx’虽然是ASCII编码,但也可以看成是UTF-8编码,而u’xxx’则只能是Unicode编码。


    把u’xxx’转换为UTF-8编码的’xxx’用encode(‘utf-8’)方法。

    1 >>> u'ABC'.encode('utf-8')
    2 'ABC'
    3 >>> u'中文'.encode('utf-8')
    4 'xe4xb8xadxe6x96x87

    反过来,把UTF-8编码表示的字符串’xxx’转换为Unicode字符串u’xxx’用decode(‘utf-8’)方法。

    1 >>> 'abc'.decode('utf-8')
    2 u'abc'
    3 >>> 'xe4xb8xadxe6x96x87'.decode('utf-8')
    4 u'u4e2du6587'
    5 >>> print 'xe4xb8xadxe6x96x87'.decode('utf-8')
    6 中文

    由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-

    第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

    第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

    关于Python正则表达式匹配中文:

    这里边重点用到了  r'[u4e00-u9fa5]+'  的正则规则,表示1到多个任意汉字。

     1 import re
     2 str=u"【心理箴言】现实是污浊的河流,要想接受污浊的河流而自身不被污染,我们必须成为大海。 ​​=-=4845/.?'​"
     3 # py2.7,所以字符串前加u,在正则表达式前也加u即可。
     4 # pattern =re.compile(u'[u4e00-u9fa5]')
     5 pattern =re.compile(r"[u4e00-u9fa5]+")
     6 result=pattern.findall(str)
     7 result1=re.findall(pattern,str)
     8 for w in result:
     9     print(w)
    10 
    11 str1='hjggj小vjjk明'
    12 pat=re.compile(r'[u4e00-u9fa5]+')
    13 result=pat.findall(str1)
    14 print(result)

    运行结果:

    如果全是汉字 指定输出某些汉字呢:

    见 Unicode 中文编码表: https://www.bejson.com/convert/unicode_chinese/

  • 相关阅读:
    Smart Client Architecture and Design Guide
    Duwamish密码分析篇, Part 3
    庆贺发文100篇
    .Net Distributed Application Design Guide
    New Introduction to ASP.NET 2.0 Web Parts Framework
    SPS toplevel Site Collection Administrators and Owners
    来自Ingo Rammer先生的Email关于《Advanced .Net Remoting》
    The newsletter published by Ingo Rammer
    深度探索.Net Remoting基础架构
    信道、接收器、接收链和信道接受提供程序
  • 原文地址:https://www.cnblogs.com/Army-Knife/p/10691407.html
Copyright © 2020-2023  润新知