5. 自定义原子表([])作为原子:如:’/[apj]sp/’ ’/[^apj]sp/’
正则表达式中常用的非打印字符 正则表达式中常用的“通用字符类型”
可以修正正则表代式的解释, 或扩充了正则表达式的功能
* i : 修正正则表达式不区分大小写(默认是区分大小写的)
*
* m : 修正符号修正正则表达式可以视为多行, 在使用 ^ 或 $ 这两个符号时, 每一行满足都可以。 (默认视为一行处理)
*
* s: 修正正则表达式中的 . 可以匹配换行符号 (默认 . 不能匹配回车符号)
*
* x: 修正正则表达式,可以省略空白
*
* U: (.*, .+) 正则表达式比较贪婪, .*? .+?(不能都用,都用=没用)
* 分割、匹配、查找、替换
*
* 1. 字符串处理函数 (处理快, 但有一些做不到)
*
* 2. 正则表达式函数 (功能强大,但效率要低)
*
*
* 注意:如果可以直接使用字符串处理函数处理的字符串,就不要使用正则处理
*
*
*
* 匹配查找:
*
* strstr strpos substr
*
*
* 正则匹配查找
*
* preg_match() preg_match_all() preg_grep();
*
*
* 分割:
* explode() implode() -- join()
*
*
*正则表达式
preg_split()
*
*
*
* 替换
* 字符串处理 str_replace()
*
*
* 正则表达式 preg_replace()
*
*
* strtoupper();
<?php $str="这是周小姐的网站http://www.misszhou.net 这是百度的网站http://www.baidu.com 这是csdn的网站http://csdn.net 这是瞎编的网站https://www.fdfhs.cn/php/demo.inc.php?use=admin&p=123"; $reg='/(https?):\/\/(www|mail|bbs)\.(.*?)\.(net|com|cn)([\w-\.\*\?\%\=\/]*)?/'; if(preg_match_all($reg,$str,$arr)) { echo '<pre>'; // echo "正则<b>{$reg}</b>,和字符串<b>{$str}</b>匹配成功<br>"; // print_r($arr); echo '</pre>'; } else echo "匹配失败<br>"; $str="这是[email protected]网站"; $str="这是[email protected]网站"; $str="这是[email protected]网站"; $str="这是[email protected]网站"; $reg='/\w+([+-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/i'; if(preg_match_all($reg,$str,$arr)) { echo '<pre>'; echo "正则<b>{$reg}</b>,和字符串<b>{$str}</b>匹配成功<br>"; print_r($arr); echo '</pre>'; } else echo "匹配失败<br>";
<?php $str="missZhou"; if(stristr($str,"zhou")){ // echo "exist"; } else echo "no"; echo strpos($str,"m");//躲开第一个字符!返回0 function getfilename($url) { $loc=strrpos($url,"/")+1; return substr($url,$loc); } echo getfilename("http://www.baidu.com/a/demo.php")."<br>"; echo getfilename("../img/aa.gif");
<?php if(isset($_POST['dosubmit'])){ if(!preg_match("/^\S+$/",$_POST['usename'])) { echo "空"; } } ?> <form action="" method="post"> usename:<input type="text" name="usename" value="" /><br> <input type="submit" name="dosubmit" value="submit"><br> </form>
<?php $str="i am MissZhou. i will study hard, i will gain!"; print_r(preg_split('/(.,!?)/',$str,-1,PREG_SPLIT_NO_EMPTY|PREG_SPLIT_OFFSET_CAPTURE));//[]()不一样! //[] Array ( [0] => i am MissZhou [1] => i will study hard [2] => i will gain [3] => ) //() Array ( [0] => i am MissZhou. i will study har [1] => i will gain! ) print_r(explode(" ",$str,2));//限制个数 都当成最后一个 不能用空字符串分割 $arr=preg_split('//',$str,-1); echo implode("++++",$arr)."<br>"; list($a,$b)=explode("_","zy_j"); echo $a."<br>"; echo $b."<br>";
<?php $str="MissZhou will lose"; $num=0; $newstr=str_replace("lose","win",$str,$num); //echo $str."<br>"; //echo $newstr."<br>"; //echo $num; $str="周小姐bushi最棒"; $newstr=str_replace(array("bushi"),array("当然是"),$str);//数组用于对应对换 echo $newstr;
<?php $str="MissZhou is <b>best</b>"; $html="/\<[\/\!]*?[^\<\>]*?\>/is"; $newstr=preg_replace($html,"",$str); echo $newstr."<br>"; echo $str;