详解Python里使用正则表达式的ASCII模式

yipeiwu_com5年前Python基础

ASCII

ASCII(American Standard Code for Information Interchange),是一种单字节的编码。计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号。不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础。

目前,基本上都使用python3来开发了,但是有时为了兼容旧的python2的代码,在正则表达式里主要是字符串的表示方式不同了,在python3里是使用Unicode来表示字符串和正则表达式,而在python2里是使用ASCII来表示的,所以在python3里怎么样设置才兼容旧的方式呢?其实可以通过ASCII的标志来解决,如下面的例子:

#python 3.6 
#蔡军生  
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
import re 
text = u'Français złoty Österreich' 
pattern = r'\w+' 
ascii_pattern = re.compile(pattern, re.ASCII) 
unicode_pattern = re.compile(pattern) 
print('Text  :', text) 
print('Pattern :', pattern) 
print('ASCII  :', list(ascii_pattern.findall(text))) 
print('Unicode :', list(unicode_pattern.findall(text))) 

结果输出如下:

Text  : Français złoty Österreich
Pattern : \w+
ASCII  : ['Fran', 'ais', 'z', 'oty', 'sterreich']
Unicode : ['Français', 'złoty', 'Österreich']

总结

以上所述是小编给大家介绍的详解Python里使用正则表达式的ASCII模式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!

相关文章

Python基于socket实现简单的即时通讯功能示例

本文实例讲述了Python基于socket实现简单的即时通讯功能。分享给大家供大家参考,具体如下: 客户端tcpclient.py # -*- coding: utf-8 -*- i...

python基础教程之序列详解

sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素) 序列可以包含一个或多个元素,也可以没有...

详解Python编程中time模块的使用

一、简介 time模块提供各种操作时间的函数 说明:一般有两种表示时间的方式: 第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的 第二种以...

解决Django 在ForeignKey中出现 non-nullable field错误的问题

在django的model中建立了如下的类 class UserType(models.Model): name = models.CharField(max_length=40,...

python实现感知器

python实现感知器

上篇博客转载了关于感知器的用法,遂这篇做个大概总结,并实现一个简单的感知器,也为了加深自己的理解。 感知器是最简单的神经网络,只有一层。感知器是模拟生物神经元行为的机器。感知器的模型如下...