JavaScript正则表达式模式匹配(4)——使用exec返回数组、捕获性分组和非捕获性分组、嵌套分组
使用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));
JavaScript正则表达式模式匹配(4)——使用exec返回数组、捕获性分组和非捕获性分组、嵌套分组的更多相关文章
- php 正则表达式捕获组与非捕获组
熟练掌握正则表达式是每个程序员的基础要求,对于每个初学者来说会被正则表达式一连串字符弄得头晕眼花.博主便会如此,一直对正则表达式有种莫名的恐惧.近来看到另一位博友写的 <php正则表达式> ...
- JAVA正则表达式-捕获组与非捕获组
Java捕获组与非捕获组的问题 先看例子: import java.util.regex.Matcher; import java.util.regex.Pattern; public class P ...
- JavaScript 正则表达式匹配成功后的返回结果
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79005604 使用正则表达式EDIT 正则表达式可以被用于RegExp的exec ...
- JavaScript正则表达式模式匹配(6)——常用的正则表达式
1.检查邮政编码 var pattern=/[1-9][0-9]{5}/; // 必须是6位,必须是数字,第一位不能为0 var str='274200'; alert(pattern.test(st ...
- JavaScript正则表达式模式匹配(5)——特殊字符匹配、换行模式
特殊字符匹配 var pattern=/\[/; // 用\符号来转义正则里的特殊字符才能匹配 var str='['; alert(pattern.test(str)); 换行模式 var patt ...
- JavaScript正则表达式模式匹配(3)——贪婪模式和惰性模式
var pattern=/[a-z]+/; //这里使用了贪婪模式, var str='abcdefg'; alert(str.replace(pattern,'1')); //所有的字符串变成了1 ...
- JavaScript正则表达式模式匹配(2)——分组模式匹配
var pattern=/google{4,8}$/; // {4,8}$表示匹配结尾4-8次 var str='googleeeeeeeee'; // 表示e的4-8次 alert(pattern. ...
- JavaScript正则表达式模式匹配(1)——基本字符匹配
var pattern=/g..gle/; //点符号表示匹配除了换行符外的任意字符 var str='g78gle'; alert(pattern.test(str)); var pattern=/ ...
- 第一百零五节,JavaScript正则表达式
JavaScript正则表达式 学习要点: 1.什么是正则表达式 2.创建正则表达式 3.获取控制 4.常用的正则 假设用户需要在HTML表单中填写姓名.地址.出生日期等.那么在将表单提交到服务器进一 ...
随机推荐
- 启动Eclipse时An internal error occurred during: "Initializing Java Tooling".错误
解决方法一 重置窗口布局: windows > perspective > reset perspective 解决方法二: 如果上述方法不好使,采用下面的这种方法: 删除workspac ...
- JSON(五)——同步请求中使用JSON格式字符串进行交互(不太常见的用法)
在同步请求中使用JSON格式进行数据交互的场景并不多,同步请求是浏览器直接与服务器进行数据交互的大多是用jsp的标签jstl和el表达式对请求中的数据进行数据的渲染.我也是在一次开发中要从其它服务器提 ...
- 深入理解JavaScript的this指向问题
Javascript的this用法 this是Javascript语言的一个关键字.它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如: function test(){ this.x ...
- window7下配置python2.7+tornado3.3开发环境
发现之前写太繁琐..这里分享下同学的方法 1,安装 Python 2.7.x 版本地址:https://www.python.org/downloads/release/python-278/2,安装 ...
- 【笔记】快应用QuickApp(hap) -- 构建一个微博应用
一.背景 在上次和小伙伴分享了快应用(后面简称hap)后,有很多待定的思路没有去尝试.这周有时间简单开发了一个热门微博的应用,主要涉及到的难点:富文本.长列表.画廊.这里将整个开发过程中遇到的问题以及 ...
- JAVA数据库编程、JAVA XML解析技术
JDBC概述 JDBC是JAVA中提供的数据库编程API curd :数据库增删改 链接字符串:String url = "mysql :/localhost :3306/jdbc/&quo ...
- ST-LINK V2 DIY笔记(一)
最近一段时间调试STM32板子的时候,都是用JLINK+杜邦线,或者拿官方板子当STLINK用,可以用,但是体积比较大,有时候觉得比较麻烦.正好前一阵手头项目少,就想DIY一个STLINK. 图是网上 ...
- Ubuntu16.04开机引导缺失Win10
Ubuntu正常开机的情况下: sudo update-grub # 如果grub丢失, 就先sudo apt install grub Ubuntu不能正常开下: 进入Ubuntu引导, 不要正常进 ...
- java加密算法AES与RSA
1.commons-codec使用 commons-codes 常用工具类:DigestUtils,Base64,Hex 1.1 md5 String text = "hello,md5&q ...
- python读取excel时,数字自动转化为float
xlrd模块去读excel时会将数字类型的自动转化为浮点数,这是一个小坑.在网上查了一下,该模块的作者也说过Excel treats all numbers as floats. In general ...