我们在开发一些项目中经常会遇到,比如验证邮箱,手机号码等等,没有系统学习前,我只能去网上找一些插件改一下代码来完成工作,但总觉得不够灵活.所以下决心认真学习正则表达式,下面会通过一些例子一起来学习.
我们通过下面这个函数来进行练习
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原创,欢迎转载,转载请注明来自