|
本帖最后由 todaynew 于 2013-3-3 17:23 编辑
每逢换届,媒体常用的四个字叫做:“继往开来”。此次换届虽然也用了这四个字,但是有趣的是在此之前抓了一个开来,关了一个熙来。
莫谈国事。还是来谈谈正则表达式好了。最近一直在与正则表达式打交道,起先就这个问题问询过朱亦文老师,得到了他的许多指点。便有了许多豁然开朗的感觉,于是给几个版友用正则表达式解决了问题。但是正则表达式到底有什么用和怎
么用,版友多半不清楚。于是乎打算写一贴,说明这个问题,也勉强算是继往开来一下。
我们常常需要从一些文本文件中,提取一些信息。比如我们想从七个常委的简介中提取一些信息,这个时候就需要用到正则表达式。先来看看这些资料:
“习近平,男,1953年生,陕西富平人,1974年1月加入中国共产党,1969年1月参加工作,清华大学人文社会学院马克思主义理论与思想政治教育专业毕业,在职研究生学历,法学博士学位。十七届中共中央政治局常委、中共中央书记处书记
,中华人民共和国副主席,中央党校校长,中华人民共和国中央军事委员会副主席。2012年11月15日,习近平当选为第十八届中共中央总书记、中央军委主席。”
这是关于习近平同志的简介,要从这段文字中提取姓名、性别、籍贯等信息不是太困难,大体用Split加上字符串函数就足够了。
但是,注意这个但是!
但是,要从七个常委的简介中提取与习近平同志相同的信息,那就困难了。为什么呢?因为这七个常委的简介并非统一的规范,大概是办公厅让各位领导自己写的,各位领导写得也就繁简不一了。繁简不一就使得简介的规律性复杂化了,一复
杂化,提取信息的难度也就大了。在这种情况下,单纯的用字符串处理函数,要么不可能处理,要么难以处理。
怎么办呢?
办法当然是有的,那就是用正则表达式来处理。正则表达式在解析字符串方面有非常强的功能。比如前两天有版友问如何将小写金额转为大写金额,这个问题如果不用正则表达式处理,大体需要几十条语句,我用正则表达式处理只需要十句以
内,网上更有甚者用一句正则表达式就解决这个问题了。
所以,打算从大段大段的文本中提取统一的信息的同志们,可以学习一下本示例。这个示例中写了几个正则表达式方面的函数都很有用,本例实际只用到其中的两个简单函数。需要说明的是,我在提取信息时所写的正则表达式可能并非最优,也就是说处理同一个问题,正则表达式可能存在许多种不同写法。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|