经常会查找xml或HTML标签里的内容,如果着急用,可以使用下面的正则和方式查找:
使用正则表达式: reg = /<div>([\s\S]*)</div>/ig
输出结果
两个函数的区别:RegExp.$1;
这两个函数使用了正则表的式的括号进行分组匹配,很方便,而且节省了大量代码。
正则表达式的括号分组功能,有四种写法
我们使用的是第一种方式进行匹配的,这种写法与没有括号的写法功能基本上是一样的
如:
括号的用途在于,模式匹配上以后,可以提取括号分组里的内容。如从匹配的
'Windows 95'提取'Windows',括号括起来后就可以用RegExp.$1提取括号里的
内容,如果匹配多个,可以用RegExp.$1...$99提取。
([\S]+)只是产生了一个有趣的副产品,导致匹配的内容被捕获供今后使用。
2、3、4种写法全部丢弃了副产品。
2、(?:pattern)意思是丢弃副产品,括号里匹配的内容不再存储和使用。
分析:
副产品直接丢弃
3、(?=pattern)
分三步操作
1、找到和正则表达式完全匹配的内容。2、捕获括号前面的内容。3、丢弃括号里的副产品。
分析:
1、找到Windows95和Windows98
2、捕获两个Windows
3、丢弃括号里的副产品98和95
4、(?!pattern)负向预查
1、找到和正则表达式括号外的表达式完全匹配的内容。2、捕获括号前面的内容。3、丢弃括号里的副产品。
分析:
1、找到Windows2000
2、捕获1个Windows
3、丢弃括号里的副产品2000
另一个负向预查的例子
使用正则表达式: reg = /<div>([\s\S]*)</div>/ig
/** * * @param {type} str * @param {type} tag * @returns {array}或null 标签和内容数组 */ function tag(str,tagName){ //正则表达式 <div>([\s\S]*)</div> var exp = '<'+tagName+'>([\\s\\S]*)<\/'+tagName+'>'; console.log(exp); var reg = new RegExp(exp,'ig'); var arr = str.match(reg); return arr; } /** 只返回标签内容或null **/ function tagText(str,tagName){ var exp = '<'+tagName+'>([\\s\\S]*)<\/'+tagName+'>'; console.log(exp); var reg = new RegExp(exp,'ig'); var arr = str.match(reg); if(arr!=null){ return RegExp.$1; } return null; } var str = "<html><body><div>测试div \n</div><body><html>"; var arr = tag(str,'div'); console.log(arr[0]); var text = tagText(str,'div'); console.log(text);
输出结果
Chrome 34.0.1847 (Windows 7) LOG: '<div>([\s\S]*)</div>' Chrome 34.0.1847 (Windows 7) LOG: '<div>测试div </div>' Chrome 34.0.1847 (Windows 7) LOG: '<div>([\s\S]*)</div>' Chrome 34.0.1847 (Windows 7) LOG: '测试div '
两个函数的区别:RegExp.$1;
这两个函数使用了正则表的式的括号进行分组匹配,很方便,而且节省了大量代码。
正则表达式的括号分组功能,有四种写法
1、(pattern) 2、(?:pattern) 3、(?=pattern) 4、(?!pattern)
我们使用的是第一种方式进行匹配的,这种写法与没有括号的写法功能基本上是一样的
如:
var reg=/[\S]+ [\S]+/ig 和 var reg = /([\S]+) [\S]+/ig; var str = 'Windows 95 是个比较老的系统。'; var arr = str.match(reg); console.log('匹配结果:'+arr[0]); console.log('捕获分组:'+RegExp.$1); 输出为: Chrome 34.0.1847 (Windows 7) LOG: '匹配结果:Windows 95' Chrome 34.0.1847 (Windows 7) LOG: '捕获分组:Windows'
括号的用途在于,模式匹配上以后,可以提取括号分组里的内容。如从匹配的
'Windows 95'提取'Windows',括号括起来后就可以用RegExp.$1提取括号里的
内容,如果匹配多个,可以用RegExp.$1...$99提取。
([\S]+)只是产生了一个有趣的副产品,导致匹配的内容被捕获供今后使用。
2、3、4种写法全部丢弃了副产品。
2、(?:pattern)意思是丢弃副产品,括号里匹配的内容不再存储和使用。
var str = 'Windows 95 是个比较老的系统。'; var reg = /(?:[\S]+) [\S]+/ig; var arr = str.match(reg); console.log('匹配结果:'+arr[0]); console.log('捕获分组:'+RegExp.$1); Chrome 34.0.1847 (Windows 7) LOG: '匹配结果:Windows 95' Chrome 34.0.1847 (Windows 7) LOG: '捕获分组:'
分析:
副产品直接丢弃
3、(?=pattern)
分三步操作
1、找到和正则表达式完全匹配的内容。2、捕获括号前面的内容。3、丢弃括号里的副产品。
var str = 'Windows95和Windows98是比较老的系统。Windows2000是新系统!'; var reg = /Windows(?=98|95)/ig; var arr = str.match(reg); for(var i=0;i<arr.length;i++){ console.log('匹配结果'+i+':'+arr[i]); } console.log('捕获分组:'+RegExp.$1); Chrome 34.0.1847 (Windows 7) LOG: '匹配结果1:Windows' Chrome 34.0.1847 (Windows 7) LOG: '匹配结果2:Windows' Chrome 34.0.1847 (Windows 7) LOG: '捕获分组:'
分析:
1、找到Windows95和Windows98
2、捕获两个Windows
3、丢弃括号里的副产品98和95
4、(?!pattern)负向预查
1、找到和正则表达式括号外的表达式完全匹配的内容。2、捕获括号前面的内容。3、丢弃括号里的副产品。
var str = 'Windows95和Windows98是比较老的系统。Windows2000是新系统!'; var reg = /Windows(?!98|95)/ig; var arr = str.match(reg); for(var i=0;i<arr.length;i++){ console.log('匹配结果'+i+':'+arr[i]); } console.log('捕获分组:'+RegExp.$1); Chrome 34.0.1847 (Windows 7) LOG: '匹配结果0:Windows' Chrome 34.0.1847 (Windows 7) LOG: '捕获分组:'
分析:
1、找到Windows2000
2、捕获1个Windows
3、丢弃括号里的副产品2000
另一个负向预查的例子
//取得script里的网址"http://www.baidu.com" var str = '<script src="http://www.baidu.com"><script>'; var reg = /(?!src=)"[\S]*"/; var match = str.match(reg); console.log(match[0]); 输出: "http://www.baidu.com"
发表评论
-
解决eclipse在修改js卡顿现象
2018-02-09 15:49 1280新版eclipse编辑含有javascript内容的jsp时, ... -
chosen 数据的动态更新
2016-09-08 15:28 1709chosen是个不错的复合下拉组件,缺点是文档较少 源码在gi ... -
优秀的弹层组件
2016-04-20 18:19 633http://layer.layui.com/ -
googleapis.com域名访问慢的解决办法
2016-04-13 12:09 8881、安装火狐 2、安装插件ReplaceGoogleCDN -
国内常用前端公共库CDN服务
2015-11-15 14:00 908BAIDU http://cdn.code.baidu.co ... -
jquery validate 1.14
2015-10-12 20:14 765<!DOCTYPE html PUB ... -
jquery 事件处理handler函数的参数
2015-02-08 23:22 2543jquery 事件处理handler函 ... -
jquery tr rowindex
2014-11-30 13:42 857var tr = $(this).parents('tr' ... -
jqgrid please select row warning
2014-11-23 19:42 1681引入ui.jqgrid.css即可解决 -
改变多个jquery.ready的默认顺序
2014-11-23 15:37 1255$(document).ready 这个函数的解释: 引用 D ... -
javascript 错误的继承方式
2014-11-02 23:02 691var parent = {t:1,m:2,} pare ... -
JS图片格式验证
2014-07-03 16:48 864function pic(file){ var r ... -
更改underscorejs默认的匹配符
2014-06-14 11:51 805/** 修改underscore.js默认的< ... -
uglifyjs批量压缩js
2014-06-13 16:34 2389jquery官方使用uglifyjs进行压缩的,压缩比较高 ... -
html5 canvas作的手写板【兼容手机】
2014-05-21 15:56 5232<!DOCTYPE html> <ht ... -
backbone.js model和view视图的单元测试
2014-05-20 17:32 1313backbone的模块化开发,需要引入测试流程保证代码的质量, ... -
netbeans和karma进行单元测试二【jasmine入门】
2014-05-20 15:43 1634karma配好之后,默认使用的是jasmine作为测试框架: ... -
javascript的代理和切面
2014-05-15 13:39 709Java里有面向切面的实现方式,可以监控包、对象、函数 ... -
backbone.js路由Router的使用
2014-05-09 11:33 1523路由的使用很简单,路由的转向 router.navigate( ... -
backbone.js的View里的事件重复调用
2014-05-09 11:18 1945backbone的一个视图被初始化多次后,发现一个按钮事 ...
相关推荐
主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧,需要的朋友可以参考下
可以作为验证正则表达式小工具,也可以作为操作XML的参考。
正则表达式,正则表达式,正则表达式 正则表达式 正则表达式 正则表达式 正则表达式 正则表达式 正则表达式
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一...
常用正则表达式 正则表达式 常用正则表达式 正则表达式
正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式...
正则表达式速查 正则表达式举例 正则表达式学习 (4页A4纸)
正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式
正则表达式.rar正则表达式.rar正则表达式.rar正则表达式.rar
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
正则表达式正则表达式正则表达式正则表达式 验证程序
正则表达式帮助 有用的正则表达式帮助 有用的正则表达式帮助 有用的正则表达式帮助 有用的
《学习正则表达式》从正则表达式的基本概念讲起,到编写完整的sed和Perl脚本,再到转换HTML文件,将这种强大的工具解释得清晰透彻。书中贯穿了大量简洁明了的示例,旨在让读者轻松掌握正则表达式。此外,书中各在线...
正则表达式 正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式
正则表达式日期校验 正则表达式日期校验 正则表达式日期校验
正则表达式验证工具 V1.0 本软件主要用于检测正则表达式是否正确。 运行环境:本软件为绿色软件,无需安装,但需要Microsoft .NET Framework 4 支持,如果没有请前去下载(下载路径:...
教你如何将正则表达式使用在SQL查询中,工作中经常需要,因为用正则表达式查询能更准确的查询出匹配的信息,学Oracle必须要懂得知识点
正则表达式总结正则表达式总结正则表达式总结正则表达式总结正则表达式总结正则表达式总结
正则表达式汇总
正则表达式正则表达式正则表达式正则表达式正则表达式正则表达式