javascript 正则表达式

正则表达式一个劲的忘,这次写个博客加深一下理解。

许多编程语言中都有内置的正则表达式,对处理字符串非常有用,正则表达式(regular expression)的语法大体上相同,不同的语言可能会稍微不同,这里以javascript为例。

RegExp对象

javascript中实例化RegExp对象:

  • 字面量

var reg = /[\d]+/g

  • 构造函数

var reg = new RegExp(“[\\d]+”,g);

其中g是修饰符

修饰符功能
gglobal全文搜索(第一行),不添加只匹配第一个
iignore case 忽略大小写,默认大小写敏感
mmultiple lines多行匹配

在正则表达式中的表示特殊含义的非字母字符

字符类

正则表达式中使用’[]’表示一类字符,比如[abc]匹配的就是’abc’中的一个,

范围

字符类中可以同过’-‘表示范围,比如[a-z]表示全部的小写字母,如果想包含’-‘这个字符可以在最后添加:[a-z-]这就表示所以小写字母和’-‘这个字符.

取反

^表示取反,[^abc]表示不是abc的字符

边界

字符含义
^以xxxx开头(不再[]中时)
$以xxxx结尾
\b单词的开始或结束
\B非单词边界

量词

字符含义
?出现0到1次
+至少出现1次
*出现0到多次
{n}出现n次
{n,}出现n到多次
{n,m}出现n到m次

元字符

字符含义
.匹配除换行符以外的任意字符
\d匹配任意数字字符
\D匹配任意非数字的字符
\w匹配字母或数字或下划线或汉字
\W匹配任意不是字母,数字,下划线,汉字的字符
\s匹配任意空白符的字符
\S匹配任意不是空白符的字符
[\u4e00-\u9fa5]匹配任意单个汉字

贪婪模式和非贪婪模式

贪婪模式

比如:”1234565677wefdsf”.replace(/[\d]{3,6}/,”X”);
将3到6个数字替换成X,是将3个呢还是4个还是5个6个数字替换成一个X呢,运行的结果是”X5677wefdsf”,也就是尽可能多的匹配,这就是贪婪模式,是正则表达式的默认匹配方式。

非贪婪模式

如果想尽可能少的匹配,就是非贪婪模式,就是在正则表达式的最后加上’?’就是非贪婪模式。
“1234565677wefdsf”.replace(/[\d]{3,6}?/,”X”);
运行结果是:”X4565677wefdsf”,只匹配了3个。

分组

使用量词只能作用于紧挨着它的字符,不能作用多个,而分组则可以达到作用于一组,比如afda+,只能表示a出现1次或者多次,而不能表示afda,使用分组(afda)+使两次作用整个括号里的(一组);

在分组中使用’|’可以达到或的效果。(ab|cd)表示ab或者cd

反向引用

  • 分组捕获:用$1..$n表示第一组到第n组。
  • 忽略分组:分组中加上?:表示忽略此分组,(?:ab)(cd),$1代表的是分组(cd)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值