我们在开发一些项目中经常会遇到,比如验证邮箱,手机号码等等,没有系统学习前,我只能去网上找一些插件改一下代码来完成工作,但总觉得不够灵活.所以下决心认真学习正则表达式,下面会通过一些例子一起来学习.

我们通过下面这个函数来进行练习

str表示为执行正则的目标字符串,执行此函数打印出的result就是匹配结果,根据测试,上述例子结果是匹配test

再看下面这个例子

上述代码匹配的结果是b.

这里用到的一个知识点就是匹配个数,{1}表示匹配一个,/b{1}/即表达匹配一个b,/b{n}/表示匹配n个b,如果将上述代码{1}改为{2},则输出null,表示匹配不成功.同理,如果改成如下代码:

则输出bb.

连续匹配多个还有另外一种用法,b{m,n},匹配m到n个b,如b{3,7}

只要b的数量大于等于3个且小于等于7个都能匹配成功.

同理b{1,}表示匹配1个或1个以上的b

?的用法

再回头看这段代码,匹配的结果是7个b,正则表达式在不给它设置任何条件时,总是会尽量多匹配结果,如果只想匹配3个b,则只需在b{3,7}后面加个?

^开头结尾$用法

^符号表示开始,本例输出了5个b,匹配成功,但如果字符串改为abbbbck则会匹配失败

同理$表式匹配末尾

这段代码成功匹配了末尾字母k

/./的用法,表示匹配任意第一个字符,\n除外

输出为1,如果/../,则输出12

另外还有最为经典用法/.*/ 表示全部匹配任意字符(除\n)

输出123

二选一 b|c

输出b

输出c

下面再看一个很有意思的例子

只输出了b,/^b|c.+/表式匹配b开头或以c开头后的任意字符串,改为

经过试验输出结果多了一个b,目前我也不知道是什么原因,好了,今天的正则表达式学习先到这里,改天有时间继续.

本文为multifeeling原创,欢迎转载,转载请注明来自