正则 不区分大小写_正则即时是魔法

Magic

正则即是魔法

前言

我们在工作以后面对的很多考试和以前的哪些考试略微有些变化,不再是【给我一本教材】-【吃透知识】-【面对问题】的模式,很多时候都是【给我一个题库】-【面对考试】的模式了。在目前互联网发展如此发达的时候,我们每个人在面对题库的时候肯定都会这样去思考:如果,能把这个题库做到手机上,那将会是绝杀,可惜做不得。给考官倒一杯卡布奇诺,快点考官,就这个题库能把我小桓秒了,我当场就把这个电脑屏幕吃掉!

问题引入

通常我们拿到的题库有两种模式,一种是Word文件,用于打印和考试的;另外一种是Excel文件,一般是直接从网络系统里面导出的。其实两种格式,在我们使用纸质题库时,没什么区别。但是如果我们有了开头那种想法,新世界的大门就打开了。我想我们都有过使用手机软件去学习题库的经历,里面有预览,练习,考试,错题集等等模式,灵活使用可以极大的提高这类题库学习的效率,并且会拥有很高的正确率和难以想象的速度,就像阿发说的那样“把题库搞成了肌肉记忆”。这里我们强烈的推荐【磨题帮】这个App,用过的都说好。可这个App上传的题库文件只能是指定格式的Excel文件,如果题库本身是Excel文件都好调整,如果是Word文件,就容易吃电脑屏幕了。本期我们要解决的问题就是:将Word题库转成Excel题库。

两种题库展示

047b3efc414a15eca03e1d43a2e10764.png

Word题库展示

ea932188f6bc748c00ae5c5c2732fc5c.png

Excel题库展示

目标分析

我们经过观察,可以看到Word题库中每一道题的格式都差不多:【题干】【选项】【答案】【分析】,在去年我给老爸做一个题库的时候,直接用段落遍历,即For循环也完成了一样的功能,当时他们那个题库格式非常整齐,每个选项都是独立成段落,只需要从头到位的去遍历和摆放就行了。但如果几个选项或者答案和题干都在同一段落,上面的办法就会失效。需要寻找新的途径:正则。

正则表达式可以识别文本中设定好的字段,并将其提取出来。提取出来以后的摆放就不说了,重点来讲讲提取。我们要做的是在Excel中打开一个Word题库,并使用正则表达式把特定内容提取到Excel中的制定单元格里。

施工开始

1,在Excel的VBA编程环境中,引入正则的库

6d3be01eba2acfe83a5e52616a622c8b.png

打开VBA环境,在工具-引用中选择如图所示库

2,构建正则变量

Dim reg As Object

Set reg = CreateObject("Vbscript.RegExp")

    With reg

        .Pattern = ""

        .MultiLine = True

        .Global = True

        .ignorecase = False

End With

这里来解释一下几个参数的含义:

.Global = True '设置是否匹配所有的符合项,True表示匹配所有, False表示仅匹配第一个符合项

.IgnoreCase = True '设置是否区分大小写,True表示不区分大小写, False表示区分大小写

.Pattern = "" '设置要查找的字符模式这里设置为空

关于正则如何去匹配,大家去互联网学习一下,有兴趣的可以自己下载一个专门的App叫做【RegEx Lab】可以用来做正则练习,随时将你想到的匹配方法进行实践。

3,使用正则变量提取数据及数据摆放

a410e4e46ccee6e7f6bc101a6618e366.png

由于我们题库的提取中,将【题干】【选项】【答案】做区分,需要匹配三次,所以实现将匹配规则写到了一个变量里,方便后面使用

863f0f1df2582aaf1dc6e5640d741f58.png

这段完成了三次匹配的模式控制和数据的摆放,在完成匹配后就得到了我们想要的匹配数据。在实际中,最后还专门写了一个分割函数来把题目的选项给分开。

总结

本期关于Excel中VBA的使用就介绍到这里,完成整个程序的构建后,可以直接将Word题库转成Excel题库,如果有需要完成相关的部分,可以自己学习完成掌握,也可以联系我。

邮箱:327836130@qq.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值