你是如何学会正则表达式的?

cuiyafei 2019-08-16

喜欢的话点个收藏和关注吧

GitHub上的有个2万星的项目,叫learn-regex,可以解决初学者的难题。

并且,这个教程刚完成了汉化工作,还附有在线练习,帮助萌新快速入门正则表达式。

什么是正则表达式

正则表达式( Regular expression)是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子。

比如我们在网站中看到对用户名规则做出了如下限制:只能包含小写字母、数字、下划线和连字符,并且限制用户名长度在3~15个字符之间,如何验证一个用户名是否符合规则呢 ?我们使用以下正则表达式:

<img src="https://pic3.zhimg.com/50/v2-4cb2f732ff1c853a203a303f87d42d7d_hd.jpg" data-caption="" data-size="normal" data-rawwidth="633" data-rawheight="424" data-default-watermark-src="https://pic3.zhimg.com/50/v2-cb4010c098744a498e3c8186e5dce1ac_hd.jpg" class="origin_image zh-lightbox-thumb" width="633" data-original="https://pic3.zhimg.com/v2-4cb2f732ff1c853a203a303f87d42d7d_r.jpg"/>

你是如何学会正则表达式的?

以上的正则表达式可以接受john_doe、jo-hn_doe、john12_as,但不能匹配Jo,因为它包含了大写字母而且长度不到3个字符。

项目内容

learn-regex整个教程分为6节,内容比较简短,很快就能阅读完。

<img src="https://pic2.zhimg.com/50/v2-43b60567e19c4769d5f541a34538598c_hd.jpg" data-caption="" data-size="normal" data-rawwidth="808" data-rawheight="1742" data-default-watermark-src="https://pic3.zhimg.com/50/v2-8e49e13600dddb66f8859496e7679d51_hd.jpg" class="origin_image zh-lightbox-thumb" width="808" data-original="https://pic2.zhimg.com/v2-43b60567e19c4769d5f541a34538598c_r.jpg"/>

你是如何学会正则表达式的?

教程从最简单的正则表达式入手,紧接着又介绍了核心内容元字符,然后由简到难介绍正则表达式的各种用法。

<img src="https://pic3.zhimg.com/50/v2-fda815867fc309f1e7d51a421bbd1310_hd.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="893" data-default-watermark-src="https://pic4.zhimg.com/50/v2-687f7492e5fb30c3d778f016ab84517a_hd.jpg" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic3.zhimg.com/v2-fda815867fc309f1e7d51a421bbd1310_r.jpg"/>

你是如何学会正则表达式的?

在线练习

如果你以为learn-regex只是个简单的汉化教程就大错特错了。learn-regex之所以能获得2万星的高赞,还有个重要原因就是它提供了在线练习,直观地展示了正则表达式的匹配方式。

比如(c|g|p)ar是如何匹配The car is parked in the garage.这句话中的几个单词的:

<img src="https://pic3.zhimg.com/50/v2-9426074afae2b9d7f46408bf34be339d_hd.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="288" data-default-watermark-src="https://pic2.zhimg.com/50/v2-e8c9cb4650b6b4ba1f7192c3bcd075f1_hd.jpg" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic3.zhimg.com/v2-9426074afae2b9d7f46408bf34be339d_r.jpg"/>

你是如何学会正则表达式的?

我们可以直观地看到以c、g、p开头并且紧跟ar的单词都能很正则表达式匹配。网页的右侧还会给出相应的解释:

<img src="https://pic2.zhimg.com/50/v2-9434007d1d439e37dd7aacb30864b3a8_hd.jpg" data-caption="" data-size="normal" data-rawwidth="718" data-rawheight="384" data-default-watermark-src="https://pic2.zhimg.com/50/v2-e7a26ca381724347373116fc19c18531_hd.jpg" class="origin_image zh-lightbox-thumb" width="718" data-original="https://pic2.zhimg.com/v2-9434007d1d439e37dd7aacb30864b3a8_r.jpg"/>

你是如何学会正则表达式的?

是不是比枯燥的文字解释要生动很多呢?那你也来试试吧!

学习C/C++的伙伴可以私信回复小编“学习”领取全套免费C/C++学习资料、视频

你是如何学会正则表达式的?

相关推荐