正则表达式-个人纪录
时间:2019-12-27
本文章向大家介绍正则表达式-个人纪录,主要包括正则表达式-个人纪录使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
案例一: (match的用法)
var regex = /ab/;
var string = "ababa abbb ababab";
console.log( string.match(regex) );
["ab", index: 0, input: "ababa abbb ababab", groups: undefined]
var regex = /(ab)/;
var string = "ababa abbb ababab";
console.log( string.match(regex) );
["ab", "ab", index: 0, input: "ababa abbb ababab", groups: undefined]
总结: (match)
1. 非全局匹配
首先说明一下,数组元素的索引是从0开始的。
(1).第0个元素是匹配结果。
(2).第1个元素是第一个引用型分组匹配的子字符串。
(3).第2个元素存放的是第二个引用型分组匹配的子字符串,依次类推。
返回的数组对象同时具有两个属性:
(1).index:返回匹配的子字符串起始字符在stringObject源字符串中的位置。
(2).input:返回stringObject源字符串。
2. 全局匹配
与非全局匹配的区别:
(1).不具有index和input属性。
(2).不具有引用型分组匹配的子字符串,数组元素仅包含匹配的所有子字符串。
案例二: (分组后面有量词的话,分组最终捕获到的数据是最后一次的匹配)
var regex = /(\d)+/;
var string = "12345";
console.log( string.match(regex) );
["12345", "5", index: 0, input: "12345"]
var regex = /(ab)+/;
var string = "ababa abbb ababab";
console.log( string.match(regex) );
["abab", "ab", index: 0, input: "ababa abbb ababab", groups: undefined]
string.replace(regex,"#")
"#a abbb ababab"
var regex = /(ab)+/g;
var string = "ababa abbb ababab";
console.log( string.match(regex) )
string.replace(regex, '#')
"#a #bb #"
总结: 分组后面有量词的话,分组最终捕获到的数据是最后一次的匹配. 仅仅针对 分组捕获的数据,而匹配的内容还是正常的。
非捕获括号 (只想要括号最原始的功能,但不会引用它)
var regex = /(?:ab)/
var string = "ababa abbb ababab";
console.log( string.match(regex) );
["ab", index: 0, input: "ababa abbb ababab", groups: undefined]
var regex = /(?:ab)+/
var string = "ababa abbb ababab";
console.log( string.match(regex) );
["abab", index: 0, input: "ababa abbb ababab", groups: undefined]
var regex = /(?:ab)/g
var string = "ababa abbb ababab";
console.log( string.match(regex) );
["ab", "ab", "ab", "ab", "ab", "ab"]
var regex = /(?:ab)+/g
var string = "ababa abbb ababab";
console.log( string.match(regex) );
["abab", "ab", "ababab"]
从表现形式上 和 /(ab)+/ 一样,只不过是非捕获的写法
原文地址:https://www.cnblogs.com/jiabaochuan/p/12108357.html
- WCF中操作的分界于调用顺序和会话的释放操作分界实例停止
- WCF中数据契约之已知类型的几种公开方式代码中定义配置中定义宿主端使用解析器
- 有趣的算法(一)——n阶层尾部有几个0
- Singal Page App:使用Knockout和RequireJS创建高度模块化的单页应用引擎背景知识文档结构服务端API准备Require配置与系统配置模块中的工作模块间的工作烂图赏鉴代码送上
- Canvas 图片绕边旋转的小动画
- 探寻ASP.NET MVC鲜为人知的奥秘(3):寻找多语言的最佳实践方式
- 探寻ASP.NET MVC鲜为人知的奥秘(2):与Entity Framework配合,让异步贯穿始终
- Canvas 剪切图片
- 探寻ASP.NET MVC鲜为人知的奥秘(1):对LESS的支持
- Canvas 图片平铺设置
- Canvas 给图形绘制阴影
- State模式的经典应用场景:订单处理(c#实现)场景描述遇到问题解决问题走起
- ASP.NET SignalR 2.0入门指南介绍SignalRSignalR和WebSocket传输和回滚HTML5 传输协议Comet transports传输协议选择过程监测传输指定传输协议连接
- ASP.NET5之客户端开发:Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用Grunt和Gulp使用Grunt准备项目配置NPM配置Grunt集成起来监测文件变化与V
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 深拷贝手写
- 前端进程间通讯的渗透之术
- 动态气泡图,拿走不谢!
- 刷爆全网的动态条形图,原来5行Python代码就能实现!
- Vue框架av88732281笔记
- iOS-组件化(OC篇)
- Angular async pipe在html模板中的一个实际应用
- 3D引擎中LOD技术的理论基础
- one-hot encoding不是万能的,这些分类变量编码方法你值得拥有
- 【5分钟玩转Lighthouse】爬取JavaScript动态渲染页面
- 科技爱好者周刊(第 127 期):未来人人开发软件,几乎没人编码
- mac快捷键
- 浅谈Kotlin的Checked Exception机制
- 自研网关:特殊URL功能的开发
- centos7多网卡配置