设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 7382|回复: 15
打印 上一主题 下一主题

[模块/函数] 【Access小品】继往开来--用正则表达式提取信息示例

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-3 09:23:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 todaynew 于 2013-3-3 17:23 编辑

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

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

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

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

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

  但是,注意这个但是!

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

  怎么办呢?

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

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




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖2 订阅订阅
2#
发表于 2013-3-3 10:11:09 | 只看该作者
本帖最后由 koutx 于 2013-3-4 10:07 编辑

不偏之为中,不倚之为庸,中者天下之正道,庸者天下之定理。以前总觉得正则表达式抽象枯燥复杂难记,看来该了解了解了。
3#
发表于 2013-3-3 17:15:08 | 只看该作者
正要,学习,谢谢!
4#
发表于 2013-3-4 07:56:09 | 只看该作者
想学
5#
发表于 2013-3-4 08:15:14 | 只看该作者
学习,谢谢!
6#
发表于 2013-3-4 08:38:11 | 只看该作者
谢谢分享
收藏了
7#
发表于 2013-3-4 08:46:43 | 只看该作者
学习,谢谢!

点击这里给我发消息

8#
发表于 2013-3-4 09:19:17 | 只看该作者
学习老汉大作
9#
发表于 2015-4-11 00:19:32 | 只看该作者
好好好好好好好好好好好好好好
10#
发表于 2015-7-20 10:29:34 | 只看该作者
学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-10 18:07 , Processed in 0.152061 second(s), 38 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表