去年在上一家公司的时候,老板发生神经要搞网站,要搞网络地理数据挖掘。我赶鸭子上架,小小的搞了半年,没有搞出什么像样的东西。其中有一段时间重点研究了一下WebZip和TextPipe工具。其中TextPipe是一个在文本数据挖掘方面是比较有名的工具。主要的思路是利用正则表达式来匹配和分析语义。

前两天从一个PDF文档中拷贝了一个表格,用UltraEdit来编辑格式,偶然发现UltraEdit也支持正则表达式搜索和替换,如是尝试了一下。UltraEdit支持三种语法规则的正则表达式,其中UltraEdit自定规则的表达式功能较弱,不支持数字。如是用Unix规则的。规则比较简单,看说明文档很容易明白,就不多讲了。但要强调一点的是搜索字符串中分量的定义和替代字符串中的定义,在帮助文档中描述是错误的。简单讲在搜索字符串中用“()”来定义分量,在替代字符串中用“\数字”来引用。

举一个例子说明。从PDF中拷贝的表格所有行都被放到一行了,需要分割成多行,表格的最后一列是数字,其他列都是字母

如下:

ShangHai 38470 BeiJing 8765

则搜索字符串定义为“([0-9]+)( )”,替换字符串定义为“\1\n”,处理结果为:

ShangHai 38470

BeiJing 8765

其中“\1”表示“([0-9]+)”,而第二个分量,即数字后面的空格,在替代字符串中被舍弃,而增加了一个回车换行符。

UltraEdit是一个比较方面实用的小工具,大家用的比较多,如果加上正则表达式的,可能应用范围就更广了,希望这个小技巧对大家有用。

Posted on 2008-11-27 22:49  急死人  阅读(845)  评论(0编辑  收藏  举报