Office中国论坛/Access中国论坛

标题: 【Access小品】继往开来--用正则表达式提取信息示例 [打印本页]

作者: todaynew    时间: 2013-3-3 09:23
标题: 【Access小品】继往开来--用正则表达式提取信息示例
本帖最后由 todaynew 于 2013-3-3 17:23 编辑

  每逢换届,媒体常用的四个字叫做:“继往开来”。此次换届虽然也用了这四个字,但是有趣的是在此之前抓了一个开来,关了一个熙来。

  莫谈国事。还是来谈谈正则表达式好了。最近一直在与正则表达式打交道,起先就这个问题问询过朱亦文老师,得到了他的许多指点。便有了许多豁然开朗的感觉,于是给几个版友用正则表达式解决了问题。但是正则表达式到底有什么用和怎
么用,版友多半不清楚。于是乎打算写一贴,说明这个问题,也勉强算是继往开来一下。

  我们常常需要从一些文本文件中,提取一些信息。比如我们想从七个常委的简介中提取一些信息,这个时候就需要用到正则表达式。先来看看这些资料:

  “习近平,男,1953年生,陕西富平人,1974年1月加入中国共产党,1969年1月参加工作,清华大学人文社会学院马克思主义理论与思想政治教育专业毕业,在职研究生学历,法学博士学位。十七届中共中央政治局常委、中共中央书记处书记
,中华人民共和国副主席,中央党校校长,中华人民共和国中央军事委员会副主席。2012年11月15日,习近平当选为第十八届中共中央总书记、中央军委主席。”

  这是关于习近平同志的简介,要从这段文字中提取姓名、性别、籍贯等信息不是太困难,大体用Split加上字符串函数就足够了。

  但是,注意这个但是!

  但是,要从七个常委的简介中提取与习近平同志相同的信息,那就困难了。为什么呢?因为这七个常委的简介并非统一的规范,大概是办公厅让各位领导自己写的,各位领导写得也就繁简不一了。繁简不一就使得简介的规律性复杂化了,一复
杂化,提取信息的难度也就大了。在这种情况下,单纯的用字符串处理函数,要么不可能处理,要么难以处理。

  怎么办呢?

  办法当然是有的,那就是用正则表达式来处理。正则表达式在解析字符串方面有非常强的功能。比如前两天有版友问如何将小写金额转为大写金额,这个问题如果不用正则表达式处理,大体需要几十条语句,我用正则表达式处理只需要十句以
内,网上更有甚者用一句正则表达式就解决这个问题了。

  所以,打算从大段大段的文本中提取统一的信息的同志们,可以学习一下本示例。这个示例中写了几个正则表达式方面的函数都很有用,本例实际只用到其中的两个简单函数。需要说明的是,我在提取信息时所写的正则表达式可能并非最优,也就是说处理同一个问题,正则表达式可能存在许多种不同写法。

[attach]51347[/attach]

[attach]51348[/attach]

作者: koutx    时间: 2013-3-3 10:11
本帖最后由 koutx 于 2013-3-4 10:07 编辑

不偏之为中,不倚之为庸,中者天下之正道,庸者天下之定理。以前总觉得正则表达式抽象枯燥复杂难记,看来该了解了解了。
作者: ycxchen    时间: 2013-3-3 17:15
正要,学习,谢谢!
作者: 13601812106_01    时间: 2013-3-4 07:56
想学

作者: yanwei82123300    时间: 2013-3-4 08:15
学习,谢谢!
作者: xuwenning    时间: 2013-3-4 08:38
谢谢分享
收藏了

作者: wzh    时间: 2013-3-4 08:46
学习,谢谢!
作者: 轻风    时间: 2013-3-4 09:19
学习老汉大作
作者: p51219    时间: 2015-4-11 00:19
好好好好好好好好好好好好好好
作者: nncchh    时间: 2015-7-20 10:29
学习一下
作者: nncchh    时间: 2015-7-20 10:30
学习一下
作者: nncchh    时间: 2015-7-20 10:31
学习一下
作者: nncchh    时间: 2016-1-31 12:21
谢谢分享
作者: owen2016    时间: 2016-8-20 16:47
已经阅读,谢谢
作者: owen2016    时间: 2016-8-20 16:57
已经阅读,谢谢




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3