前言 - 介绍 + 快速示例

  • 作者:KK

  • 发表日期:2017.6.7


写的原因

每周都会在几个PHP群中看到三五次有人咨询正则表达式的问题,故此希望写下这些文章发个网址快速为大家提供解答

我的匹配能力其实并不高深,都是普通+少数进阶知识,但已经很我够平时用了,至少学会基础都够我hold住80%的匹配需求了

在这里我主要使用JS和PHP代码作为匹配示例


我觉得传统的教程不适合大部分新手

这是一个传统的教程链接

这些教程往往从概念、知识点切入,还附带一个符号解释表让大家去了解,这种教程真的不少,多得不得了,搜一下正则表达式再看看百度百科,估计都没几个菜鸟能看懂

就算看了之后,以后要用到这些知识时也不知要看哪个符号的解释才能找到答案,一看到那么多内容,干脆就不看了,搞得菜鸟们没啥动力

我这次整理文章主要从需求角度切入,从简单到复杂的匹配需求慢慢深入,在左侧栏的目录大纲中可以看到日常匹配的需求描述,可以快速定位到你需要的匹配知识点,起码学会了可以稳稳地把大部分匹配工作hold住,不再是一个遇到正则就懵逼的菜鸟

其实看完这一套文章不代表你就熟悉掌握了,还要一些使用经验才可以,看一遍,跟着试验学习一下,留个印象,而工作中有了这样的需求时再回来回顾一下正式应用到工作中就印象加深了

最后我还加了个《每周每月练习》的章节给大家,自己有空拿来练练就能保持对正则的基本掌握了,这样过面试题也更有Power


新手不懂:啥是正则表达式

如果有个字符串是“Hello May Jay Joy!”(这里涉及了三个人的称呼),如果要从这个字符串中取出名字后面有ay两个字母的姓名,拿JS代码做示例吧,用正则表达式是这样的:

var str = `Hello May Huay Joy!`;

var 正则表达式 = /\w+ay/g;

console.log(str.match(正则表达式));

结果如下,输出了一个数组,有2个元素,May和Huay都在里面:


再来一个例子,匹配c到j的内容

var str = 'abcaaaajk cbbbbbx';

var 正则表达式 = /c.*j/g;

var matchResult = str.match(正则表达式);
console.log(matchResult[0]);

结果得到caaaaj