Fork me on GitHub

2011年11月12日

摘要: 上一篇文章我们介绍了和Unicode有关的匹配问题,这篇文章我们主要讲述一下Unicode编码本身的特性,以便更好地运用正则表达式解决与Unicode相关的问题。Unicode Code PointUnicode字符多种多样,除去ascii中的字母、数字、标点和中文字符,还包括其它多种语言和多种符号,有些符号甚至很难打出来(比如表示商标注册的?),这时候该如何表示呢?再说远一点,如果我们想用一个字符组匹配所有中文字符,能不能像『[a-z]』那样呢?所幸,每一个Unicode字符都对应自己的Unicode编码,也就是Unicode编码表中的一个代码点(Code Point),所以在正则表达式中的 阅读全文
posted @ 2011-11-12 13:41 RussellLuo 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 关于正则表达式的文档很多,但大部分都是英文的,即便有中文的文档,也翻译或改编自英文文档。在介绍功能时,这样做没有大问题,但真要处理文本,就可能会遇到一些英文开发或应用环境中难得见到的问题。比如中文之类多字节字符的匹配,就是如此。所以,这篇文章专门谈谈正则表达式如何处理多字节字符,更 准确地说,是如何处理Unicode编码的文本(为什么只提到Unicode编码,而没有提到其它编码,理由在后面详述)。首先介绍关于编码的基础知识:通常来说,英文编码较为统一,往往采用ascii编码或兼容ascii的编码(即编码表的前127位与ascii编码一致,常用的各种编码,包括 Unicode编码都是如此)。也就 阅读全文
posted @ 2011-11-12 12:43 RussellLuo 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 【编者按】正则表达式一直是开发者工具箱中趁手的利器,但很多人对此仍是一知半解。这次InfoQ中文站有幸邀请到来自盛大创新院的余晟,开辟《正则表达式》的专栏,为读者讲解正则表达式的一些技巧和概念。他还是《精通正则表达式》和《技术领导之路》的译者。用过正则表达式的人都知道,正则表达式中有一类叫做“元字符(meta-character)”的特殊符号,它们并不匹配自身对应的字符,而具有其 他的含义。比如脱字符『^』表示“定位到字符串/行的开头”,加号『+』表示“之前的元素重现1次以上。如果需要匹配这些字符本身,需要用反斜线来转义, 匹配『^』就应该用\^,匹配『+』就应该用\+。看起来有点麻烦,但这样 阅读全文
posted @ 2011-11-12 09:39 RussellLuo 阅读(1663) 评论(0) 推荐(0) 编辑

2011年11月10日

摘要: 注意:本文的讨论建立在前文《EXCEL中,将十六进制转换为十进制》的基础上。一、And运算符 在前一篇文章中,方法2的VBA子例程ConvertData_2中,有这样一段代码:Do HexToDec Cells(cell.row, cell.column) Set cell = .FindNext(cell) On Error Resume Next ' 开启错误处理开关' 查找并转换完毕所有满足条件的单元格后,执行下面这行语句应该条件为假从而跳出循环;' 但不知为何,实际情况是:此时会出错,所以特别增加了错误处理Loop While Not cell Is Nothi 阅读全文
posted @ 2011-11-10 23:23 RussellLuo 阅读(2415) 评论(0) 推荐(0) 编辑

2011年11月9日

摘要: 一、背景 1、在EXCEL表格中,将十六进制转换为十进制的常用方法是:使用HEX2DEC函数。 2、在EXCEL的一个单元格中,如果输入形如"12E36"之类的可以被成功识别为“科学计数法”的文本,EXCEL就会自动将该单元格中的文本以“科学计数法”的方式进行解释转换。这种智能转换的初衷本是为了提供帮助,但如果"12E36"本身其实是一个十六进制数时,这种转换则会给用户添加不少麻烦。二、策略 鉴于以上原因,我在EXCEL中显示和处理十六进制数时,倾向于在原始的十六进制文本前面加上"0x"前缀。以这种方式表示十六进制数,既有助于人为直观 阅读全文
posted @ 2011-11-09 22:45 RussellLuo 阅读(24468) 评论(0) 推荐(0) 编辑

2011年11月8日

摘要: 关于mmap,《Python v2.7.2 documentation》中的描述如下:mmap — Memory-mapped file support Memory-mapped file objects behave like both strings and like file objects. Unlike normal string objects, however, these are mutable. You can use mmap objects in most places where strings are expected; for example, you ca... 阅读全文
posted @ 2011-11-08 23:28 RussellLuo 阅读(607) 评论(0) 推荐(0) 编辑

2011年10月24日

摘要: 1、最早学习Tkinter的时候,在《Tkinter编程代码实例》中看到的“打开文件对话框”需要用到FileDialog模块,代码非常简单:from Tkinter import *from FileDialog import *root = Tk()fd = LoadFileDialog(root) # 创建打开文件对话框filename = fd.go() # 显示打开文件对话框,并获取选择的文件名称print filenameroot.mainloop() 但是界面效果比较简陋(不是本地风格),而且遇到中文名称也会显示为乱码。所以FileDialog.LoadFileDialog用于快速 阅读全文
posted @ 2011-10-24 23:15 RussellLuo 阅读(15319) 评论(2) 推荐(1) 编辑

2011年10月23日

摘要: 数据库中的记录都是按照集合的方式来组织的,一个记录集中的各个记录往往是无序的(或者有默认顺序,如按存入数据库的顺序,但不能绝对保证这种顺序)。如果在实际应用中,我们需要在数据库中存储类似于列表的有顺序的数据,此时该采取怎样的策略呢? 一种直接而有效的方法是,在记录集(或表)中增加一个“顺序”列(或叫“索引”字段),对表进行存入、取出或者排序的操作时,都可以依据“索引”字段来完成,从而保证数据应有的正确顺序: content order -------------------- A 1 B ... 阅读全文
posted @ 2011-10-23 21:19 RussellLuo 阅读(5076) 评论(0) 推荐(0) 编辑

2011年10月19日

摘要: 在Excel中没有提供直接的方法或函数用于数组排序,因此若要使用VBA进行数组排序,则需要采用我们在数据结构与算法课程中学到的排序算法。 这里转载了Using a Visual Basic Macro to Sort Arrays in Microsoft Excel中给出的使用VBA进行数组排序的两种方法,分别采用的排序算法为:选择排序和冒泡排序。Method 1: Selection Sort Function SelectionSort(TempArray As Variant) Dim MaxVal As Variant Dim MaxI... 阅读全文
posted @ 2011-10-19 23:12 RussellLuo 阅读(16244) 评论(0) 推荐(0) 编辑

2011年10月16日

摘要: 今天尝试在Python中运行Excel宏(参见在Python中运行Excel的VBA宏),为了测试的简便性,就在Excel中随便写了个VBA宏:从第1行到第50000行,分别给第1列单元格写入一个字符串。测试结果良好。 为了进一步测试Python运行Excel宏的性能(如速度),我特意将50000的行数增加到了100000,结果运行该宏的时候竟然出错了,调试发现行数增加到65537的时候,程序崩溃了,提示“运行时错误‘1004’:应用程序定义或对象定义错误”。 百思不得其解之余,我上网查询了一下错误原因,结果发现原来有“Excel的规范和限制”的说法,即在不同版本的Excel中,对应有各种各. 阅读全文
posted @ 2011-10-16 22:31 RussellLuo 阅读(1082) 评论(0) 推荐(1) 编辑

导航