正则表达式分析匹配input文本框
2013-12-09 10:56
471 查看
今天准备用DW替换查找所有input文本框,于是开始写正则进行匹配。
先来看下以下2种情况有什么不同。
<input(.*+)value="(.*?)"([^>]*?)>
<input(.*?)value="(.*?)"([^>].?)>
其实这里已经用到了正则表达式的“正则懒惰与贪婪模式”,了解这2种用法就比较方便了。
这里我们需要“懒惰”一下,即尽可能少的重复,找到即返回,不需要再继续匹配。第1种方法是错的,调试多次都是匹配多数,即贪婪模式。从中不难看出,之所以会贪婪,是因为少了这个符号?<input(.*+)value="(.*?)"([^>]*?)><input(.*?)value="(.*?)"([^>].?)>
换成第2种 懒惰模式即可。而后面的2个正则都是用了懒惰,所以不需要改。
再看这2个<input(.*?)value="(.*?)"([^>].?)><input(.*?)value="(.*?)"([^>]*?)>
由于 点号“.”是匹配单个字符,再加上懒惰符问题“?”,匹配1次或多次,即这段内容只会匹配这样的结果/> 或者 空格> (也就是尖括号>左边只会有1个字符匹配)所以,其他的字符还是会保留,在替换时就被输出了。这并不是想要的结果而星号"*"是匹配前面的子表达式零次或多次任意,那么就会将多次出现的都匹配出来class ="xxx" /> 或者 xx任意字符> (也就是尖括号>左边所有条件都会匹配在这个正则 ,本例中即$3)
我们要获取的是第2个正则的内容,即$2,所以正确的用法是以下
用DW替换的话就是这样上面框:<input(.*?)value="(.*?)"([^>]*?)>
下面框:$2
//只需要保留第2个正则内容,则只写出$2
先来看下以下2种情况有什么不同。
<input(.*+)value="(.*?)"([^>]*?)>
<input(.*?)value="(.*?)"([^>].?)>
其实这里已经用到了正则表达式的“正则懒惰与贪婪模式”,了解这2种用法就比较方便了。
这里我们需要“懒惰”一下,即尽可能少的重复,找到即返回,不需要再继续匹配。第1种方法是错的,调试多次都是匹配多数,即贪婪模式。从中不难看出,之所以会贪婪,是因为少了这个符号?<input(.*+)value="(.*?)"([^>]*?)><input(.*?)value="(.*?)"([^>].?)>
换成第2种 懒惰模式即可。而后面的2个正则都是用了懒惰,所以不需要改。
再看这2个<input(.*?)value="(.*?)"([^>].?)><input(.*?)value="(.*?)"([^>]*?)>
由于 点号“.”是匹配单个字符,再加上懒惰符问题“?”,匹配1次或多次,即这段内容只会匹配这样的结果/> 或者 空格> (也就是尖括号>左边只会有1个字符匹配)所以,其他的字符还是会保留,在替换时就被输出了。这并不是想要的结果而星号"*"是匹配前面的子表达式零次或多次任意,那么就会将多次出现的都匹配出来class ="xxx" /> 或者 xx任意字符> (也就是尖括号>左边所有条件都会匹配在这个正则 ,本例中即$3)
我们要获取的是第2个正则的内容,即$2,所以正确的用法是以下
用DW替换的话就是这样上面框:<input(.*?)value="(.*?)"([^>]*?)>
下面框:$2
//只需要保留第2个正则内容,则只写出$2
相关文章推荐
- 实例分析js和C#中使用正则表达式匹配a标签
- PHP匹配多行的正则表达式分析
- js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
- Javascript中正则表达式的全局匹配模式分析
- C#正则表达式的递归匹配分析
- Javascript中正则表达式的全局匹配模式分析
- UrlRewrite正则表达式匹配、配置实例和分析
- URL(基础一) UrlRewrite正则表达式匹配、配置实例和分析
- 正则表达式中的匹配,替换,切割,获取,这四个使用时具体用哪一个,进行案例分析
- [No0000100]正则表达式匹配解析过程分析(正则表达式匹配原理)&regexbuddy使用&正则优化
- 正则表达式匹配解析过程探讨分析(正则表达式匹配原理)
- PHP匹配多行的正则表达式分析
- 实例分析js和C#中使用正则表达式匹配a标签
- 正则表达式匹配解析过程探讨分析(正则表达式匹配原理)
- 正则表达式匹配解析过程探讨分析(正则表达式匹配原理)
- 完善匹配中文的Php正则表达式(转)
- 正则表达式-匹配matches
- Jmeter中正则表达式不区分大小写进行匹配
- 字符串——正则表达式匹配
- 正则表达式(二) - 零宽断言与懒惰匹配以及平衡组