博客列表 >PHP正则表达式 20191017

PHP正则表达式 20191017

阿乎乎的学习
阿乎乎的学习原创
2019年10月21日 14:04:15691浏览

学习了一些常见的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('这是一个世界','世界');

运行实例 »

点击 "运行实例" 按钮查看在线实例

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议