PHP的正则
来源:互联网 发布:json对象解析成列表 编辑:程序博客网 时间:2024/05/01 21:50
之前看过很多遍正则30钟,然而并没有练习,所以一点进步都没有,现在来总结一下这个晚上我看的吧…..
<?php/** * preg_filter() * @var string */// $subject = 'njks41854415ddf'; // $pattern = '/5/'; // $replace = 'ba'; // echo "preg_filter returns\n";// print_r(preg_filter($pattern, $replace, $subject)); // echo "\n";// echo "preg_replace returns\n";// print_r(preg_replace($pattern, $replace, $subject)); /** * preg_grep() 仅用于数组 * @var array */// $subjects = array("Mechanical Engineering", "Medicine", "Social Science", "Agriculture", "Commercial Science", "Politics" ); // //匹配所有仅由有一个单词组成的科目名 // $alonewords = preg_grep("/^[a-z]*$/i", $subjects); // var_dump($alonewords);/** * preg_last_error() 返回错误代码 */// preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');// if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {// print 'Backtrack limit was exhausted!';// }/** * preg_match_all() 执行一个全局正则表达式的匹配 * PREG_PATTERN_ORDER和PREG_SET_ORDER不可同时出现 * *///PREG_PATTERN_ORDER模式/*preg_match_all("|<[^>]+>(.*)</[^>]+>|U", "<b>example: </b><div align=left>this is a test</div>", $out, PREG_PATTERN_ORDER);echo $out[0][0] . ", " . $out[0][1] . "\n";echo $out[1][0] . ", " . $out[1][1] . "\n";*//* 结果:<b>example: </b>, <div align=left>this is a test</div>example: , this is a test*///PREG_SET_ORDER模式/*preg_match_all("|<[^>]+>(.*)</[^>]+>|U", "<b>example: </b><div align=\"left\">this is a test</div>", $out, PREG_SET_ORDER);echo $out[0][0] . ", " . $out[0][1] . "\n";echo $out[1][0] . ", " . $out[1][1] . "\n";*//*结果:<b>example: </b>, example: <div align="left">this is a test</div>, this is a test*//** * preg_match() 只搜索0/1次 *//*$subject = "abcdef";$pattern = '/^def/';preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);print_r($matches); //啥也匹配不了$rest = substr("abcdef", 1); //从第二位开始print_r($rest."\n");$subject = "abcdef";$pattern = '/^def/';preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE); //成功匹配到defprint_r($matches);*//*$textbody = "This book is *very* difficult to find.";$word = "*very*";$textbody = preg_replace ("/" . preg_quote($word) . "/", "<i>" . $word . "</i>", $textbody); //preg_quote() 保持星号原含义print_r($textbody);*//** * preg_replace_callback(); * @var string */$input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";function parseTagsRecursive($input){ /* 译注: 对此正则表达式分段分析 * 首尾两个#是正则分隔符 * \[indent] 匹配一个原文的[indent] * ((?:[^[]|\[(?!/?indent])|(?R))+)分析: * (?:[^[]|\[(?!/?indent])分析: * 首先它是一个非捕获子组 * 两个可选路径, 一个是非[字符, 另一个是[字符但后面紧跟着不是/indent或indent. * (?R) 正则表达式递归 * \[/indent] 匹配结束的[/indent] *//* $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#'; if (is_array($input)) { $input = '<div style="margin-left: 10px">'.$input[1].'</div>'; } return preg_replace_callback($regex, 'parseTagsRecursive', $input);}$output = parseTagsRecursive($input);echo $output;*//** * preg_split() 通过一个正则表达式分隔字符串 *///使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语$keywords = preg_split("/[\s,]+/", "hypertext language, programming");print_r($keywords); //结果:Array ( [0] => hypertext [1] => language [2] => programming )
就是这些啦,只是把PCRE函数库里面的函数都过了一遍,然而正则其他的一些细节还没仔细看看,现在就先贴在这儿吧,有空再来看看
0 0
- php的正则表达式
- php的正则
- PHP的正则
- php的正则表达式
- php的正则
- PHP的正则表达式
- php的正则表达式专题
- PHP常用的正则表达式
- php的正则表达式手册
- 常用的PHP正则表达式
- PHP正则表达式的应用
- php常用的正则表达式
- 常用的php正则匹配
- PHP常用的正则表达式
- 取子串的正则表达式 (php)
- PHP常用的正则表达式
- PHP常用的正则表达式
- php常用的正则匹配
- 可合并堆。。。BZOJ1078
- 【进展】2015.08.04 增加 SEMAPHORE 释放功能,增加MUTEX权限判断,非Onwer任务不能解锁
- 踢毽子问题
- MySQL调优 —— Using temporary
- java.net.ServerSocket详解
- PHP的正则
- HDU 4008 Parent and son (数据结构)
- Ubuntu14.04配置使用无线连接WiFi热点
- [leetCode] Different Ways to Add Parentheses
- 【爱笑话7.0版】笑话两万篇,免费阅读,绝无广告
- 测试
- 黑马程序员———反射机制
- Why Reflection is slowly?(Trail: The Reflection API)
- [LeetCode] 01矩阵中最大正方形 Maximal Square