正则表达式
来源:互联网 发布:ajax传递多个json对象 编辑:程序博客网 时间:2024/05/16 02:13
其解释如下:
(?:)是不匹配括号以内的
(?!)是负向预查,就是不匹配的意思。如"Windows (?!95|98|NT|2000)" 能匹配 "Windows 3.1" 中的 "Windows"
,但不能匹配 "Windows 2000" 中的 "Windows",因为里面使用了(?!95|98|NT|2000)即匹配的字符中包含了
95,98,NT,2000都不能匹配
.是任意字符,不包括换行的
*?是重复任意次
{10}是匹配10次前面的
\1匹配的是([A-Z])匹配的内容
^是表达式开始
$是结束
2.匹配连续相同的字符
(.)\1
匹配两个连续相同的字符
(.)\1\1
匹配三个连续相同的字符
(.)\1\1\1
匹配四个连续相同的字符,根据上面的以此类推
3.正则表达式匹配Html标签
正则表达式:<(?<tag>[^\s>]+)[^>]*>(.|\n)*?</\k<tag>>
说明:匹配成对的HTML标签,它将会匹配Html标签及标签中的内容,本例分三段匹配三个<table>标签及</table>中的内容。
原理:
< //html标签中的 <
(?<tag>[^\s>]+) // (?<name>), 分组命名的方式,[^\s>]:非任何空白字符及“>”至少匹配一次
[^>]*> //非“>”匹配 0 到 n 次,及html的标签“>”.
(.|\n) //在两个或多个项之间时行选择,(zlf)ood 与 "zood" 或 "food" 匹配.
*? // 应与上一个(.|\n)联合起来看, .*? 就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复,懒惰模式。
</\k<tag>> //反向引用命名的组,语法为 \k<name>, 及html 标签“>”
本例使用了分组命名及反向引用命名组的概念。
4.匹配HTML标签里面的内容
(?<=<(\w)>).*(?=<\/\1>)
如:(?<=<(input)>).*(?=<\/\1>)
其他参考资料:http://deerchao.net/tutorials/regex/regex.htm
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 读书笔记整理十五:实现了并行和实例的捆绑
- 清空memcache中所有数据的方法
- 类的虚拟继承
- makefile 中的 wildcard 与 patsubst 函数
- make: *** No rule to make target
- 正则表达式
- 书香与女人
- 计算机就业方向
- 从腾讯CDC页面上提取的分页结构
- eclipse背景颜色配置 方案1 and 2
- Ubuntu10.4 下eclipse安装ADT时遇到org.eclipse.wst.sse.core 0.0.0缺失的一个解决方案
- jQuery学习笔记一
- 接口与抽象类 数组
- php socket讲解与实例