正则表达式中的反向预搜索和正向预搜索的使用方法
来源:互联网 发布:烟台市网络党校打不开 编辑:程序博客网 时间:2024/06/05 01:52
正则表达式中的反向预搜索和正向预搜索的使用方法
表达式
方向
说明
(?=xxx)
正向预搜索(向右)
正向预搜索,判断当前位置右侧是否能匹配指定表达式
例:
preg_match_all('/(<div class\=\"list-info\">.*?(?=<\/div>))/si', $data, $match); $competitionArr= array(); for($i=0; $i<count($match[1]); $i++){ $competitionArr[]=$match[1][$i]; }
(?!xxx)
正向预搜索否定,判断当前位置右侧是否不能够匹配指定表达式
(?<=xxx)
反向预搜索(向左)
反向预搜索,判断当前位置左侧是否能够匹配指定表达式
(?<!xxx)
反向预搜索否定,判断当前位置左侧是否不能够匹配指定表达式
预搜索分两种,一种是向右,另外一种是向左,
以下是各个表达式在.net中的使用例子:
1.向右肯定搜索:
string rega = @"(?=[^1-9]\d+)";
string test="1t2t5";
MatchCollection mc= Regex.Matches(test,rega);
此时返回的结果集中包含 2,5.
2.向右否定搜索:
string regb = @"(?![^1-9])(\d+)";
string test="1t2t5";
MatchCollection mc= Regex.Matches(test,regb);
此时返回的结果集中包含 1,2,5.
3.向左肯定搜索:
string regb = @"(?<=[^1-9])(\d+)";
string test="1t2t5";
MatchCollection mc= Regex.Matches(test,regb);
此时返回的结果集中包含 2,5
4.向左否定搜索:
string regb = @"(\d+)(?<![^1-9])";
string test="1t2t5";
MatchCollection mc= Regex.Matches(test,regb);
此时返回的结果集中包含 1,2,5
不知道为什么,当(\d+)在向左反向预搜索表达式右边时,返回的结果集元素会少一位 ,思考中.
- 正则表达式中的反向预搜索和正向预搜索的使用方法
- 正则表达式之正向预搜索、反向预搜索
- PHP正则:正向/反向预搜索
- 正则表达式中的反向预搜索
- 正则表达式中的反向预搜索(续)
- 正则表达式高级规则中预搜索和反向预搜索用法
- 正则表达式的预搜索
- 正则表达式:正向预查与反向预查
- 正则表达式的搜索和替换
- mysql中的正则表达式搜索
- 谈谈js中的正则表达式第一篇之正向肯定预查和正向否定预查
- 正则表达式中的正/反向预查
- 正则表达式中的正/反向预查
- javaScript中正则表达式预搜索
- eclipse搜索的正则表达式
- 正则表达式: 正向预查和负向预查
- 正则表达式: 正向预查和负向预查
- preg_replace -- 执行正则表达式的搜索和替换
- 史蒂夫 乔布斯 2005年 斯坦福大学 演讲(中英字幕)
- 解析Java对象引用与JVM自动内存管理
- iOS 自定义回调方法(自用)
- Word 2010怎样显示所有格式标记
- Android 仿大众点评团购购买条浮动效果
- 正则表达式中的反向预搜索和正向预搜索的使用方法
- 游戏编程初学者常见问题解答
- 一致性hash算法 - consistent hashing
- 32位系统寻址
- 一个常见的删除数组元素的bug
- LoadRunner录制下载文件
- 举例说明在android中使用正则表达式去掉字符串中标点符号及其他一些特殊符号的方法
- Android系统联系人全特效实现(上),分组导航和挤压动画
- 字节对齐