FrankFang / fack

Fack: A prolonged way of saying "f*ck" when you are busted in an awkward/uncomfortable situation.
108 stars 10 forks source link

熟练使用正则表达式 #53

Open qfstudy opened 5 years ago

qfstudy commented 5 years ago

老师,我想掌握正则表达式,自己学一直没有入门。

FrankFang commented 5 years ago

本系列任务基于《正则表达式30分钟入门》https://deerchao.net/tutorials/regex/regex.htm

任务一:入门

首先教你一个 API

var assert = require("chai").assert;
assert.deepEqual("hi hi".match(/hi/g), ["hi", "hi"], "test 1");

主要看第二行,它的意思是用正则 /hi/ 去全局匹配 "hi hi",得到的匹配有 ["hi", "hi"],最后的 test 1 是测试的名称,学会这个才能继续后面的任务。

现在我为了考你,会故意把正则删掉:

assert.deepEqual("hi him".match(/___?___/g), ["hi"], "test 2");

看到 ___?___ 了么,意思就是,你要写出一个正则,从 "hi him" 里找出 "hi",而且不能多也不能少,就只找出一个 "hi"。

目前给你出了三个题目:https://codesandbox.io/s/fragrant-sun-hzmxv

请填空,使得右边 console 没有报错:

image

写完之后把新的 codesandbox.io 链接回复在下面。

zch233 commented 5 years ago

https://codesandbox.io/s/xenodochial-gould-qk3kz?fontsize=14

qfstudy commented 5 years ago

https://codesandbox.io/s/charming-star-8mc53

FrankFang commented 5 years ago

@Melonxx test 2 你还可以用 \b 来实现。另外,你应该新建一个 issue,这个 issue 是 @qfstudy 专属的。

FrankFang commented 5 years ago

本系列任务基于《正则表达式30分钟入门》https://deerchao.net/tutorials/regex/regex.htm

任务二:元字符、转义、重复次数

https://codesandbox.io/s/practical-darkness-zxyt9

搞定它。

qfstudy commented 5 years ago

https://codesandbox.io/s/brave-galileo-yv9nh

方方老师,第一个测试我上网查了好久,也看了你给的《正则表达式30分钟入门》,写不出来,可以给一些提示吗