相关文章推荐
知识渊博的匕首  ·  在Vue ...·  1 年前    · 
谦和的灌汤包  ·  Xi'an ...·  1 年前    · 
失望的篮球  ·  JAVA 的 SHA-256 和 ...·  1 年前    · 

如题,我想草率地下一个断言, 但凡是需要机械性重复操作的文本工作,正则表达式十有八九都有施展神技的机会

二、正则表达式的应用场景

微信群里收到一条消息,每人需要选择总时长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个数字 连续组成的字符串,正好符合课程目录中时长数据的格式。以“正则模式”进行搜索时,编辑器会找到与正则表达式格式相同的字符串,从而可以轻松地将想要的内容提取出来进行处理。

如你所见,正则表达式应用起来是可以爽到飞的。时间关系,更深入的问题暂且不表,留作课后交流或网上自习吧。

不过,千万不要觉得正则是奇技淫巧或小儿科,它是潜力无穷的利器神兵,拥有它、用好它是真的需要花点时间的。

不过,比起那些恶心而又浪费时间的机械性重复劳动,花点时间是既正当又值得的事。

一、前言如题,我想草率地下一个断言,但凡是需要机械性重复操作的文本工作,正则表达式十有八九都有施展神技的机会。二、正则表达式的应用场景微信群里收到一条消息,每人需要选择总时长1800分钟的在线课程。鉴于时长加总的繁琐和无谓,这位同学十分温馨地提醒大家可以选择相同的课程。不过需求各异,选择喜欢的课程才是最重要的,于是出现了这样的局面。虽然我不知道上图中同学2是如何计算1166分钟的,但是3...
rror C2664: “void ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::Format(UINT,…)”: 无法将参数 1 从“const char [36]”转换为“const wchar_t *” 还有一点需要读者注意的是,宽字符不等于Unicode,Unicode 是宽字符编码的一种,只不过最常见的宽字符编码方式就是Unicode了,UTF-16和UTF
4. m-n位的数字:^\d{m,n}$ 5. 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6. 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$ 7. 带1-2位小数的正数或负数:^(\-)?\d+(\....
(?:  pattern)是非捕获型括号  匹配pattern,但不捕获匹配结果。 (pattern )是捕获型括号。  匹配pattern,匹配pattern并捕获结果,自动获取组号 (? pattern )  匹配pattern,  匹配pattern并捕获结果,设置name为组名      使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达
英文标点符号比较多,如,(逗号)、。(点号)、?(问号)、:( 冒号 )、;(分号)、‘’(单引号)、!(感叹号)、“”(双引号)、—(连接号)、——(破折号)、……(省略号)、()(小括号)、【】(中括号)、{}(大括号)、(顿号)、《》书名号等。以下 正则表达式 能够验证英文标点符号。 [,。?:;‘’!“”—……、]|(-{2})|(())|(【】)|({})|(《》)           (64...
正则表达式 是描述字符模式的对象。 正则表达式 用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。 var patt=new RegExp(pattern,modifiers); pattern(模式) 描述了表达式的模式 modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配 注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)。比如,以下是等价的: var re = new RegExp("\\w+"); var re =