资讯专栏INFORMATION COLUMN

怎么用python正则表达式提取/匹配中文汉字

89542767 / 1103人阅读

  小编写这篇文章的一个主要目的,主要是给大家去做一个解答,解答的内容主要还是python相关事宜,比如,可以用python正则表达式去匹配和提取中文汉字,那么,具体的内容做法是什么呢?下面就给大家详细解答下。


  python用正则表达式提取中文


  Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用


  unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[u4e00-u9fa5]+”可以表示一个或者多个中文字符


  >>>import re
  >>>s='中文:123456aa哈哈哈bbcc'.decode('utf8')
  >>>s
  u'u4e2du6587uff1a123456aau54c8u54c8u54c8bbcc'
  >>>print s
  中文:123456aa哈哈哈bbcc
  >>>re.match(u"[u4e00-u9fa5]+",s)
  <_sre.SRE_Match object at 0xb77742c0>
  >>>pat='中文'.decode("utf8")
  >>>re.search(pat,s)
  <_sre.SRE_Match object at 0x16a16df0>
  >>>newpat='这里是中文内容'.decode("utf8")
  >>>news=re.sub(pat,newpat,s)
  >>>print news


  这里是中文内容:123456aa哈哈哈bbcc


  python正则如何匹配中文汉字


  正则表达式匹配中文汉字,在实际应用中十分常见。


  比如:爬虫网页文本提取、验证用户输入标准等。


  以下面文本字符串为例,匹配出astr这个字符串中的所有汉字。


  import re
  astr='''aaaaa何时when杖尔看see南雪snow,我me与梅花plum blossom两白头'''


  下面介绍两种方法(本文环境为python3)


  一、使用Unicode编码来匹配中文


  常见的中文Unicode编码范围:u4e00-u9fa5


  实现匹配代码:re.findall(’[u4e00-u9fa5]’,astr)


  import re
  astr='''aaaaa何时when杖尔看see南雪snow,我me与梅花plum blossom两白头'''
  res=re.findall('[u4e00-u9fa5]',astr)


  print(res)


  匹配结果:

01.png

  二、直接使用中文汉字实现中文匹配


  没使用过可能还真不知道,中文匹配还可以这样


  实现匹配代码:re.findall(’[一-龥]’,astr)


  import re
  astr='''aaaaa何时when杖尔看see南雪snow,我me与梅花plum blossom两白头'''
  res=re.findall('[一-龥]',astr)
  print(res)


  匹配结果:

02.png

  注:其实这里“一”对应的Unicode编码就是“u4e00”,“龥”(yù)对应的Unicode编码就是“u9fa5”。


  常见非英文字符Unicode编码范围:


  u4e00-u9fa5(中文)


  u0800-u4e00(日文)


  uac00-ud7ff(韩文)


  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来一定帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128316.html

相关文章

  • 经验拾忆(纯手工)=> Python正则全解详解

    预编译 import re re1 = re.compile(r元字符 组成的正则规则) # 元字符下面会说 re1.方法() # 方法下边也会说 元字符: 表示普通字符: . # 除了 外 都可以匹配的到 d # 只匹配 纯数字 0-9 D # 和 d相反, 除了数字全都匹配 ...

    Luosunce 评论0 收藏0
  • PHP正则达式规则及常方法整理

    摘要:和均为非负整数,其中。如果之前至少个获取的子表达式,则为后向引用。 注:本文转自 摘取天上星的博客 PHP常用正则表达式 ^d+$  //非负整数(正整数+ 0) ^[0-9]*[1-9][0-9]*$  //正整数 ^((-d+)|(0+))$  //非正整数(负整数+ 0) ^-[0-9]*[1-9][0-9]*$  //负整数 ^-?d+$    //整数 ^d+(.d+)?$ ...

    UCloud 评论0 收藏0
  • 使PHP辅助 快速制作一套自己的手写字体实践

    摘要:参考代码地址四制作字体模板把自己最常接触的汉字找出来之后,需要制作一套字体模板,这套字体模板的用处是让手写汉字后,顺利的找到对应的汉字,这里需要依靠第三方网站提供的一些功能。 一、背景 笔者以前在网上看到有民间高手制作字体的相关事迹,觉得把自己的手写字用键盘敲出来是一件很有意思的事情,所以一直有时间想制作一套自己的手写体,前几天在网上搜索了一下制作字体的方法,发现技术上并不是太难,结合...

    moven_j 评论0 收藏0
  • 正则达式及多语言操作指南

    摘要:能匹配中的,但不能匹配中的数量界定符符号定义是一个非负整数。则等价于和均为非负整数,其中。该方法接受一个正则表达式作为它的第一个参数。是一个非强制异常类,它表示一个正则表达式模式中的语法错误。 正则表达式及多语言操作指南 1. 正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一...

    ingood 评论0 收藏0
  • 正则达式及多语言操作指南

    摘要:能匹配中的,但不能匹配中的数量界定符符号定义是一个非负整数。则等价于和均为非负整数,其中。该方法接受一个正则表达式作为它的第一个参数。是一个非强制异常类,它表示一个正则表达式模式中的语法错误。 正则表达式及多语言操作指南 1. 正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一...

    xzavier 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<