正则表达式

正则表达式是前端中比较重要的部分。

正则规则

一. 普通字符

字母、数字、汉字、下划线以及没有特殊定义的标点符号都是”普通字符”。
表达式中的普通字符,匹配时就正常匹配。

二.简单转义

一般不便于书写的,我们用/来表示
/r /n 回车和换行符
/t 制表符
\/
\ 符号表示转义。 表示该符号本身。因为正则中的符号是有特殊意义的。

表达式可匹配
\^匹配 ^ 符号本身
$匹配 $ 符号本身
.匹配小数点本身

举例1
表达式 “$d”,在匹配字符串 “haorooms$de” 时,匹配结果是:成功;匹配到的内容是:”$d”;匹配到的位置是:开始于8,结束于10。

三.与多种字符匹配的表达式

表达式可匹配
\d任意一个数字,0~9 中的任意一个
\w任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
\s包括空格、制表符、换页符等空白字符的其中任意一个
.匹配除了换行符以外的任意的一个字符。

举例
对于字符串“abc123”

/\d\d/ 

匹配到的是 12

a.\d

匹配到aa1 因为.可以是任何字符(除了换行)

四 自定义能够匹配’多种字符’的表达式

使用方括号,包含一系列字符,能够匹配其中任意一个字符。用[^]包含一系列字符,则能够匹配其中字符之外的任意一个字符。同样的道理,虽然可以匹配其中任意一个,但是只能是一个,不是多个

一个方括号就是一个表达式。

例如
对于字符串 “abc123”

/[abc5@]/

只是匹配到了一个a

/[bcd][bcd]/

匹配到了bc 。

特殊符号^
/[^abc]/

匹配1, 这个符号表示匹配[] 内容中的其他内容。

特殊符号-
/[f-k]/

匹配f~k之间的任意一个字母

五.修饰匹配次数的符号

常用的匹配多次符号。
(贪婪)

表达式可匹配
{n}表达式重复n次,比如:”\w{2}” 相当于 “\w\w”;”a{5}” 相当于 “aaaaa”
{m,n}表达式至少重复m次,最多重复n次,比如:”ba{1,3}”可以匹配 “ba”或”baa”或”baaa”
{m,}表达式至少重复m次,比如:”\w\d{2,}”可以匹配 “a12”,”_456”,”M12344”
?匹配表达式0次或者1次,相当于{0,1}
+匹配表达式至少1次,相当于{1,}
*匹配表达式0次或多次,相当于{0,}

举例

a[cd]?

可以匹配 “a”,”ac”,”ad”, 表达式[cd] 可以是0次或1次

a+b

可以匹配 “ab”,”aab”,”aaab”…

\^*b

可以匹配”b”,”^^^b”…

六.其他一些代表抽象意义的特殊符号

在正则表达式中(不是方括号中):

表达式可匹配
^与字符串开始的地方匹配,不匹配任何字符
$与字符串结束的地方匹配,不匹配任何字符
$匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符
举例 ^

对于字符串 “xxx aaa xxx”

/^aaa/

匹配是失败的,因为这个匹配要求aaa是字符串开头才能匹配! 比如 “aaa xxs”

举例 $

对于字符串 “xxx aaa xxx”

/aaa$/

匹配也是失败的,因为这个匹配要求aaa结尾,只能匹配如
“xxx xxx aaa” 这种以aaa结尾的字符串。

举例 \b
/.\b/

在匹配字符串 “@@@abc”时,匹配是成功的;匹配的内容是”@a”
它本身不匹配任何字符,它要求匹配结果中所处的位置的左右两边,一边是\w范围一边是非\w的范围

举例
/\bend\b/

匹配”weekend,endfor,end”时,匹配结果成功
匹配的内容是end。 因为只有最后一个end符合单词边界!
你可以理解\b就是匹配一个单词!

一些符号可以影响表达式内部的子表达式之间的关系

表达式可匹配
()1)在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰 2)取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到

举例
匹配字符串 “I’m Tom, he is Jack”

/Tom|Jack/

成功匹配Tom

匹配字符串”Let’s go go go!”

(go\s*)+

匹配”go go go” 因为是匹配go多次,括号中的内容被看做整体~~
方括号是只能作为一个字符。

匹配 $10.9,¥20.5

¥(\d+.?\d*)

成功,匹配的是¥20.5
取匹配结果括号中的内容被单独取到,即20.5
?表示对这个符号 . 匹配0次或1次。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值