如题,我想草率地下一个断言,但凡是需要机械性重复操作的文本工作,正则表达式十有八九都有施展神技的机会。
二、正则表达式的应用场景微信群里收到一条消息,每人需要选择总时长1800分钟的在线课程。鉴于时长加总的繁琐和无谓,这位同学十分温馨地提醒大家可以选择相同的课程。
不过需求各异,选择喜欢的课程才是最重要的,于是出现了这样的局面。
虽然我不知道上图中同学2是如何计算1166分钟的,但是3、4同学在面对时长问题时内心一定有过那么一瞬间——“万马飘过”。
实际上这个问题可以很简单,使用正则表达式,只需1分钟。
要做的,基本也就下面这3个动作:
使用正则表达式;
使用编辑器的正则匹配查找功能;
使用Excel的自动求和功能。
我们一起试一下。
1. 打开上面那个叫《电路原理》的课程页面,进入目录页,如图每一章节都包含时长信息。
2. "Ctrl+A"选中目录页所有内容,"Ctrl+C"复制,"Ctrl+V"粘贴至一个txt文件。
3. 选择一个支持正则表达式的编辑器(市面上大多数编辑器都支持正则,我使用的是Sublime)打开上面的txt文件。
4. “Ctrl+F”打开搜索界面,点选正则匹配模式,输入正则表达式“\d{2}:\d{2}”,点击“查找全部”后,文件中所有的时间数据被选中。
5. 此时,“Ctrl+C”复制,在一个空白Excel页面中选中一个单元格“Ctrl+V”粘贴,选中该列,所有的时长被自动求和,1464分35秒。
四、简单解释一下上述实例中的正则表达式“\d{2}:\d{2}”,其含义就是匹配2个数字、1个冒号、2个数字连续组成的字符串,正好符合课程目录中时长数据的格式。以“正则模式”进行搜索时,编辑器会找到与正则表达式格式相同的字符串,从而可以轻松地将想要的内容提取出来进行处理。
五、后话
如你所见,正则表达式应用起来是可以爽到飞的。时间关系,更深入的问题暂且不表,留作课后交流或网上自习吧。
不过,千万不要觉得正则是奇技淫巧或小儿科,它是潜力无穷的利器神兵,拥有它、用好它是真的需要花点时间的。
不过,比起那些恶心而又浪费时间的机械性重复劳动,花点时间是既正当又值得的事。