之前一直有使用python 正则表达式来做中文字符串或者中英文数字混合的字符串的匹配,发现有不少情况下会匹配失灵或者结果混乱,并且在不同操作系统上匹配结果也不一致,查了很久都不知道是什么原因.今天终于彻底弄懂了,原来还是python中对中文的编码问题造成的. 解决办法: step1 在设置默认编码为UTF8之后,将正则表达式和待匹配字符串都decode("utf8")统一成 unicode再进行匹配: step2 正则表达式前面一定要加 r : 示例代码: kw_regexp = r'…
python3中str默认为Unicode的编码格式 python2中str默认为bytes类型的编码格式 Unicode是一32位编码格式,不适合用来传输和存储,所以必须转换成utf-8,gbk等等 所以在Python3中必须将str类型转换成bytes类型的 在Python中使用encode的方式可以进行字符的编码 实际用法: >>>a = "中国" >>> a.encode("utf-8") b'\xe4\xb8\xad\x…
python匹配中文的时候特别要注意的是匹配的正则字符串是否是Unicode格式的: import re source = "s2f程序员杂志一2d3程序员杂志二2d3程序员杂志三2d3程序员杂志四2d3" temp = source.decode('utf8') xx=u"([/u4e00-/u9fa5]+)" pattern = re.compile(xx) results = pattern.findall(temp) for result in result…
Django项目在访问Restful service时调用urllib.urlencode编码中文字符串时碰到下面这个错误. v = quote_plus(str(v)) UnicodeEncodeError: 'ascii' codec can't encode characters in position........... 这个错误在windows7的开发环境下没有发生,在Linux生产环境下发生了,比较郁闷,刚上线以后的Bug.Google以后,在一份中文资料(链接见参考资料)中看到U…
python 判断字符串中是否只有中文字符 学习了:https://segmentfault.com/q/1010000007898150 def is_all_zh(s): for c in s: if not ('\u4e00' <= c <= '\u9fa5'): return False return True…
python 中 正则表达式 的应用 最近作业中出现了正则表达式,顺便学习了一下. python比较厉害的一点就是自带对正则表达式的支持,用起来很方便 正则表达式 首先介绍一下什么是正则表达式. 正则表达式是用来进行字符串匹配的工具,在模式匹配中有广泛的应用. 正则表达式用若干符号来描述符合某一语法规则的字符串,从而实现匹配. 关于正则表达式的语法,参见维基百科,介绍的非常详细了. 一个用正则表达式写成的字符串也被成为模式串,意思是我们可以用这个串进行模式匹配. python中正则表达式的应用…
[转]Python中的字符串与字符编码 本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章.有的人云亦云,也有的写得很深入.近日看到某知名培训机构的教学视频中再次谈及此问题,讲解的还是不尽人意,所以才想写这篇文字.一方面,梳理一下相关知识,另一方面,希望给其他人些许帮助. Python2的 默认编码 是ASCII,不能识别中文字符,需要显式指定字符编…
python中os模块中文帮助   python中os模块中文帮助文档文章分类:Python编程 python中os模块中文帮助文档 翻译者:butalnd 翻译于2010.1.7——2010.1.8,个人博客:http://butlandblog.appspot.com/ 注此模块中关于unix中的函数大部分都被略过,翻译主要针对WINDOWS,翻译速度很快,其中很多不足之处请多多包涵. 这个模块提供了一个轻便的方法使用要依赖操作系统的功能. 如何你只是想读或写文件,请使用open() ,如果…
一. 引言 在<第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反>中老猿介绍了前视断言和前视取反,与二者对应的还有后视断言和后视取反. 二. (?<=-)后视断言(lookbehind assertion) 后视断言又称为正向后视断言.后视断定.后行断言等,与前视断言功能类似,只是前视断言是找匹配串的右边要与前视断言指定的模式匹配,而后视断言是找匹配串的左边要与后视断言指定的模式匹配. 语法:(?<=-),其中-为一个子正则表达式 例子: 要使用后视断言查找…
更新记录: 2022年5月28日 从程序中抽出方法复用. 处理财务文件时写的一个小函数.用于移除文件名中的非中文字符. /// <summary> /// 移除文件名中的非中文字符 /// 比如:FJ_其他应付款!20210126_145109.xls 中的 FJ_.!20210126_145109 /// 将返回:其他应付款.xls /// </summary> /// <param name="filename">最原始的文件名</para…