JavaScript正则表达式模式匹配(4)——使用exec返回数组、捕获性分组和非捕获性分组、嵌套分组
2024-08-25 21:07:25
使用exec返回数组
var pattern=/^[a-z]+\s[0-9]{4}$/;
var str='google 2012';
alert(pattern.exec(str)); //返回一个包含字符串的数组 var pattern=/^[a-z]+/; //只匹配到字母
var str='google 2012';
alert(pattern.exec(str)); //只返回google的字符串数组 var pattern=/^([a-z]+)\s([0-9]{4})$/; //使用了分组
var str='google 2012';
var a=pattern.exec(str);
alert(a.length); //返回a的长度 3
alert(a[0]); //返回匹配到的整个字符串
alert(a[1]); //返回匹配到的第一个分组的字符串
alert(a[2]); //返回匹配到的第二个分组的字
捕获性分组和非捕获性分组
var pattern=/(\d+)([a-z])/; // 这个叫做捕获性分组,所有的分组都捕获返回
var str='123abc';
var a=pattern.exec(str);
alert(a[0]); //返回匹配到的整个字符串 123a
alert(a[1]); //返回匹配到的第一个分组的字符串 123
alert(a[2]); //返回匹配到的第二个分组的字符串 var pattern=/(\d+)(?:[a-z])/; // 非捕获性分组,只要在不需要捕获返回的分组加上?:
var str='123abc';
alert(pattern.exec(str));
嵌套分组
var pattern=/(a?(b?(c?)))/; // 嵌套分组,从外往内获取
var str='abc';
alert(pattern.exec(str));
//第一步:a[0],整个匹配到的字符串abc
//第二步:a[1],匹配第一个分组(a?(b?(c?))),abc
//第三步:a[2],匹配第二个分组(b?(c?)),bc
//第四步:a[3],匹配第三个分组(c?),
前瞻捕获
var pattern=/goo(?=gle)/; // goo后面必须是gle才能返回goo,这里一定要注意返回的是goo,而不是google
var str='google';
alert(pattern.exec(str));
最新文章
- [资源分享]yslow 与firebug 修复版本Firefox35【绿色版本下载】
- Life of a triangle - NVIDIA's logical pipeline
- codeforces 381 D Alyona and a tree(倍增)(前缀数组)
- 初识IStructuralEquatable接口
- objective-c自学总结(二)---init/set/get方法
- 页面动态数据的滚动效果——jquery滚动组件(vticker.js)
- MYSQL 查询缓存
- 【Oracle】number类型保留小数位
- 2015级C++第4周项目 函数
- 使用zii.widgets.CDetailView显示内容
- echarts常用方法(一)
- WARNING: Re-reading the partition table failed with error 22: Invalid argument
- Sequelize 连接微软云数据库 SQL Azure
- weixinShare.js / 极简微信分享插件
- sed 笔记
- Centos7 安装 erlang rabbitmq
- wcf返回值报错解析
- 用Java位运算实现加减乘除四则运算
- Term Weighting
- AngularJS Injector和Service的工作机制
热门文章
- ELK学习总结(2-5)elk的版本控制
- SVN (TortioseSVN) 版本控制之忽略路径(如bin、obj、gen)
- intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)
- Centos6.9minimal安装图形化界面
- Java面向对象之封装 入门实例(一)
- python虚拟环境--virtualenv
- Hadoop:读取hdfs上zip压缩包并解压到hdfs的实现代码
- poj1182-食物链-带权并查集-种类并查集
- IdentityServer4-介绍大纲(译文)
- [Nginx]-外部多端口映射Https443端口配置