zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    解决 找不到方法:“Void System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)”。
    如何衡量CMS系统的好坏
    创业与团队管理的一些观点
    Windows下Memcached的安装与配置
    SQL Server 2005备份维护计划
    写给四岁的领智
    python在接口测试的实际应用
    篇2 安卓app自动化测试初识python调用appium
    篇5 python自动化测试应用Selenium环境篇
    篇1 安卓app自动化测试appium环境篇
  • 原文地址:https://www.cnblogs.com/Army-Knife/p/10691407.html
Copyright © 2011-2022 走看看