Javascript正则表达式(括号)、[中括号]、{大括号}的区别小结

^出现在开头表示字符边界,在中括号开头表示非,在其它地方就表示字符^

正则表达式的() [] {}有不同的意思。

  • () 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
  • (\s*)表示连续空格的字符串。
  • []是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。
  • {}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。
  • (0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空)
  • {1-9} 写法错误。
  • [0-9]{0,9} 表示长度为 0 到 9 的数字字符串。

正则表达式:非贪婪式匹配

有时候我们使用正则表达式只希望尽可能少的匹配。

比如在对html文件进行正则匹配时:

<span>a</span><span>b</span>

如果我们使用.*匹配

<span>.*</span>

匹配结果是

<span>a</span><span>b</span>

很明显不能满足我们的需求。

这时候我们就需要使用非贪婪式匹配,也可以称为懒惰匹配

懒惰匹配与贪婪匹配的差别就是在贪婪匹配的后面加个?

同样对上面的html进行匹配,我们使用.*?

匹配结果是

<span>a</span>

和我们预期效果一样。

除了.*?这种匹配方式,非贪婪式匹配还包括:

.+?    匹配一次
.??    不匹配
.{m,n}?   匹配m次
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值