学习了一些常见的PHP字符串函数和正则表达式
作业1:正则表达式
实例
<?php //正则表达式 一。原子,普通字符a-z,小写字母,A-Z,大写字母,0-9数字。匹配单个 $pattem = '/a/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //自定义 匹配多个如[123]匹配1,2,3,[a-z]匹配26个小写字母,[A-Z]匹配26个大写字母 echo '<hr>'; $pattem = '/[123]/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjkkk'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //非打印字符 换行\r=>\x0a;回车\r=>\x0d;换页\f=>\x0c;制表\t=>\x09;垂直制表\v=>\x0b echo '<hr>'; $pattem = '/\n/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //元字符是修饰原子字符的,可以理解为原子的定语或限定条件元字符不允许单独使用,必须配合原子,共同工作。 . 匹配符,匹配任意一个字符 .778.匹配778前后任意字符。 echo '<hr>'; $pattem = '/.778./'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk OUYANGKE OUYANGKE zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 // |匹配多个 12|67|88 匹配12,67,88的字符 echo '<hr>'; $pattem = '/12|67|88/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 // [] 匹配方括号内指定的任意一个原子 如[1234]则需要匹配1,2,3,4 echo '<hr>'; $pattem = '/[1234]/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[^] 匹配去除^以后的字符 [^1234] 匹配除去1,2,3,4都是 echo '<hr>'; $pattem = '/[^1234]/'; $subject = '123456789'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 // ^[],匹配字符串开始位置,一串字符串,必须从这里开始 $pattem = '/^[0-9]/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 // $匹配字符串结束位置 echo '<hr>'; $pattem = '/[a-z]$/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //三 量词限定符 //[]{n}表示前面原子出现n次 echo '<hr>'; $pattem = '/[0-9]{10}/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[]{n,}表示前面原子出现不少于n次 echo '<hr>'; $pattem = '/[0-9]{1,}/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 ////[]{n,m} 表示前面原子至少出现n次,最多出现m次 echo '<hr>'; $pattem = '/[0-9]{1,3}/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[]* 匹配0次、1次或多次前面原子 echo '<hr>'; $pattem = '/[0-9]*/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[]+ 匹配1次或多次前面原子 echo '<hr>'; $pattem = '/[0-9]+/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[]? 匹配0次或1次前面原子 echo '<hr>'; $pattem = '/[0-9]?/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //四、预定义字符 // \d => [0-9] \D => ^[0-9] \w => [0-9a-zA-Z_]匹配任意一个字母/数字/下划线字符 \W => ^[0-9a-zA-Z_] 匹配任意一个除字母/数字/下划线之外的字符 \s 匹配任意一个空白字符(非打印) \S 匹配任意一个除空白字符以外的字符 \b 匹配单词边界 \B 匹配除单词边界以外的部分 //五 特殊字符特殊字符需要在符号前面增加\转义 需转义符号: \ * + ? . | ^ $ [ ] ( ) //六 ( ) 匹配其整体为一个原子[模式单元],即多个原子组成的大原子 //七 修正符(在界定符后面)( U ) 表示取消贪婪模式 正则表达式有:贪婪模式和懒惰模式 正则表达式默认是贪婪模式。 //( i ) 表示和模式进行匹配时忽略大小写 echo '<hr>'; $pattem = '/ouyangke/i'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk OUYANGKE OUYANGKE ZHULAOSHI ZHULAOSHI'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //( s ) 被匹配的字符串将视为一行来看,包括换行符,换行符将被视为普通字符串 echo '<hr>'; $pattem = '/OUYANGKE./s'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk\n OUYANGKE OUYANGKE ZHULAOSHI ZHULAOSHI'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //( x ) 模式中的空白忽略不计 echo '<hr>'; $pattem = '/ 0 0 0/x'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk\n OUYANGKE OUYANGKE ZHULAOSHI ZHULAOSHI'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php //正则表达式 一。原子,普通字符a-z,小写字母,A-Z,大写字母,0-9数字。匹配单个 $pattem = '/a/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //自定义 匹配多个如[123]匹配1,2,3,[a-z]匹配26个小写字母,[A-Z]匹配26个大写字母 echo '<hr>'; $pattem = '/[123]/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjkkk'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //非打印字符 换行\r=>\x0a;回车\r=>\x0d;换页\f=>\x0c;制表\t=>\x09;垂直制表\v=>\x0b echo '<hr>'; $pattem = '/\n/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //元字符是修饰原子字符的,可以理解为原子的定语或限定条件元字符不允许单独使用,必须配合原子,共同工作。 . 匹配符,匹配任意一个字符 .778.匹配778前后任意字符。 echo '<hr>'; $pattem = '/.778./'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk OUYANGKE OUYANGKE zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 // |匹配多个 12|67|88 匹配12,67,88的字符 echo '<hr>'; $pattem = '/12|67|88/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 // [] 匹配方括号内指定的任意一个原子 如[1234]则需要匹配1,2,3,4 echo '<hr>'; $pattem = '/[1234]/'; $subject = '11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[^] 匹配去除^以后的字符 [^1234] 匹配除去1,2,3,4都是 echo '<hr>'; $pattem = '/[^1234]/'; $subject = '123456789'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 // ^[],匹配字符串开始位置,一串字符串,必须从这里开始 $pattem = '/^[0-9]/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 // $匹配字符串结束位置 echo '<hr>'; $pattem = '/[a-z]$/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //三 量词限定符 //[]{n}表示前面原子出现n次 echo '<hr>'; $pattem = '/[0-9]{10}/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[]{n,}表示前面原子出现不少于n次 echo '<hr>'; $pattem = '/[0-9]{1,}/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 ////[]{n,m} 表示前面原子至少出现n次,最多出现m次 echo '<hr>'; $pattem = '/[0-9]{1,3}/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[]* 匹配0次、1次或多次前面原子 echo '<hr>'; $pattem = '/[0-9]*/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[]+ 匹配1次或多次前面原子 echo '<hr>'; $pattem = '/[0-9]+/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //[]? 匹配0次或1次前面原子 echo '<hr>'; $pattem = '/[0-9]?/'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk ouyangke ouyangke zhulaoshi zhulaoshi'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //四、预定义字符 // \d => [0-9] \D => ^[0-9] \w => [0-9a-zA-Z_]匹配任意一个字母/数字/下划线字符 \W => ^[0-9a-zA-Z_] 匹配任意一个除字母/数字/下划线之外的字符 \s 匹配任意一个空白字符(非打印) \S 匹配任意一个除空白字符以外的字符 \b 匹配单词边界 \B 匹配除单词边界以外的部分 //五 特殊字符特殊字符需要在符号前面增加\转义 需转义符号: \ * + ? . | ^ $ [ ] ( ) //六 ( ) 匹配其整体为一个原子[模式单元],即多个原子组成的大原子 //七 修正符(在界定符后面)( U ) 表示取消贪婪模式 正则表达式有:贪婪模式和懒惰模式 正则表达式默认是贪婪模式。 //( i ) 表示和模式进行匹配时忽略大小写 echo '<hr>'; $pattem = '/ouyangke/i'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk OUYANGKE OUYANGKE ZHULAOSHI ZHULAOSHI'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //( s ) 被匹配的字符串将视为一行来看,包括换行符,换行符将被视为普通字符串 echo '<hr>'; $pattem = '/OUYANGKE./s'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk\n OUYANGKE OUYANGKE ZHULAOSHI ZHULAOSHI'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果 //( x ) 模式中的空白忽略不计 echo '<hr>'; $pattem = '/ 0 0 0/x'; $subject = 'a11112222333344445555666677778888999900000 aaabbbcccdddeeefffggghhhiiijjjjkkkk\n OUYANGKE OUYANGKE ZHULAOSHI ZHULAOSHI'; $a = preg_match_all($pattem,$subject,$matches); var_dump($a); // 输出匹配次数 var_dump($matches); // 输出匹配结果
运行实例 »
点击 "运行实例" 按钮查看在线实例
作业:字符串函数
实例
<?php //header('Content-type:text/html;charset=utf-8'); //字符串函数 //1.分割字符串 explode(separator,string,limit) separator(分割符,规定在哪里分割)string(字符串,要分割的字符串),limit(规定所返回的数组元素的数目,如果分割的出来的元素大于规定数组元素时,则会将多出来的元素以及前一个元素放入数组中作为最后一个元素) $str='小明,小新,小白,小黑'; $arr=explode(',',$str,3); print_r($arr); echo '<hr>'; //2.strstr(string,search,before_search)查找一个字符串在另一个字符串中第一次出现,string被查找的字符串,search查找字符串,如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符,before_search一个默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。为false的时候是返回搜索的字符串第一次出现及以后的部分。 $ming='小新'; echo strstr($str,$ming); echo '<br>'; echo strstr($str,$ming,true); echo '<hr>'; //strtr(string,from,to,array) 查找字符串,替换掉查询到的字符串.string,被搜索的字符串,from,需要改变的字符串,to,改变为新的字符串,array可选(除非使用 from 和 to)。数组,其中的键名是更改的原始字符,键值是更改的目标字符。form,to 和array不能同时使用。 echo strtr($str,['小新'=>'小鬼','小黑'=>'小黄']); echo '<br>'; echo strtr($str,'小白','小朋'); echo '<hr>'; //strrchr(string,chr) 搜索一个字符串在另一个字符串中最后一次出现,string被搜索的字符串,char规定要查找的字符。如果该参数是数字,则搜索匹配此数字的 ASCII 值的字符。 $str1=' 这是一个崭新的时代'; echo strrchr($str1,'崭新'); //简直神经病,用之前的那个字符串,不管怎么做只返回小黑,***难道是因为有逗号的原因??搞不懂, echo '<hr>'; //ltrim(string,charlist) 移除左侧字符空白字符或者其他字符,string原字符串,charlist,可选参数规定从字符串中删除哪些字符 $str2=' 主色萨法'; echo $str2.'<br>'; echo ltrim(ltrim($str2),'主'); echo '<hr>'; //rtrim(string,charlist)移除右侧字符空白字符或者其他字符,trim(string,charlist)移除两侧字符空白字符或者其他字符,用法和ltrim()类似。 echo rtrim('这是什么 '); echo '<br>'; echo trim(' 移除字符串 '); echo '<hr>'; //str_replace(search,replace,subject,count) 在字符串中搜索字符并使用新的字符替换,search搜索字符,replace替换字符,subject原字符串,count计次变量 echo str_replace('世界','地球','这是一个崭新的世界世界',$i).' 替换了'.$i.'次'; echo '<hr>'; //stristr(string,needle,before_needle)搜索一个字符串在另一个字符串中第一次出现的位置,string被搜索字符串,needle需要搜索的字符串,before_needle可选默认为false,返回搜索字符串和以后的内容,为true返回之前的内容。 echo stristr('这是一个世界世界','世界',true); echo '<br>'; echo stristr('这是一个世界世界','世界'); echo '<hr>'; //strripos(string,needle)返回一个字符串在另一个字符串的位置,默认是从零开始计数,一个中文字等于3个字符 echo strripos('这是一个世界','世界');
运行实例 »
点击 "运行实例" 按钮查看在线实例