博客列表 >1017 正则函数 及 字符串函数 练习 20191017 2000-2200

1017 正则函数 及 字符串函数 练习 20191017 2000-2200

没有人的夏天的博客
没有人的夏天的博客原创
2019年10月29日 15:10:52651浏览

1,正则函数

<?php
//变量配置信息
//目标变量 字符串或网址
$str = "dkajdfkajdfqjeipjfa ,cmcmieaiejccjkdkdjfdkfjdkalpwpoc.zvnnvzpwpwin,v.zpweirjxa?>:-{}{)(*¥¥ }】pdalkd dkdk
aoexn, bbbb, aaaa,ccc, ??? ";
//条件 正则表达式
$pattem = '/a/';
//替换内容 $0 表示 被替换的内容
$rep = "/php中文网$0/";
//字符串分隔符 正则表达式
$pattem2 = '/,/';
//替换个数
$num = 2;

// 正则字符串操作函数
//1.获取方法: preg_match 在 字符串 中获取第一个满足条件的结果
//implode("", $str) 可以把数组转成字符串
$a = preg_match($pattem, $str, $match);
echo '查找字符串中的满足条件的第一个内容 :';
// print_r(implode("", $str));
print_r($match);
echo '<hr>' . '获取的结果的数量 :';
print_r($a);
echo '<hr>';

//2. 获取方法: preg_match_all 在 字符串 中获取全部满足条件的结果
$a = preg_match_all($pattem, $str, $match);
echo '查找字符串中所有满足条件的内容 :';
print_r($match);
echo '<hr>' . '获取的结果的数量 :';
print_r($a);
echo '<hr>';

//3.分隔字符串 :
//用正则表达式函数 preg_split 分隔字符串 为一个数组
$p2 = preg_quote($pattem2);
$str = preg_split($pattem2, $str);
echo "根据{$p2}号用正则表达式分隔字符串后生成的 目标数组 :" . '<br>';
print_r($str);
echo '<hr>';


//4.输出正则表达式内容函数:preg_quote
$p = preg_quote($pattem);
$r = preg_quote($rep);
echo "要查找的正则表达式内容 :" . '<br> ';
print_r($p);
echo '<hr>';
echo '要替换为的正则表达式内容 :' . '<br> ';
print_r($r);
echo '<hr>';


// 正则数组操作函数
//5.在数组中查找所有符合条件的数据:preg_grep
$a = preg_grep($pattem, $str);
echo "查找目标数组中 包含{$p}的数据 " . '<br>';
print_r($a);
echo '<hr>';

//6.替换目标内容 ,preg_replace 在 数组 中查找并替换目标内容,返回替换后的 数组
//在str中 查找pattem 2次,并替换为 $rep,
$a = preg_replace($pattem, $rep, $str, $num);
echo "查找包含{$p}的前两个替换为{$r},并生成 含未替换部分 的新数组: " . '<br>';
print_r($a);
echo '<hr>';
$a = preg_replace($pattem, $rep, $str);
echo "查找所有包含{$p}的部分替换为{$r},并生成 含未替换部分 的新数组: " . '<br>';
print_r($a);
echo '<hr>';

//7.替换目标内容: preg_filter 在 数组 中查找并替换目标内容,返回替换内容组成的 数组
$a = preg_filter($pattem, $rep, $str, $num);
echo "查找包含{$p}的前两个替换为{$r},并生成 不含未替换部分 的新数组: " . '<br>';
print_r($a);
echo '<hr>';
$a = preg_filter($pattem, $rep, $str);
echo "查找所有包含{$p}的部分替换为{$r},并生成 不含未替换部分 的新数组: " . '<br>';
print_r($a);
echo '<hr>';
?>


2,字符串函数

<?php
//变量配置信息
//目标变量 字符串或网址
$str = "dkajdfkajdfqjeipjfa ,cmcmieaiejccjkdkdjfdkfjdkalpwpoc.zvnnvzpwpwin,v.zpweirjxa?>:-{}{)(*¥¥ }】pdalkd dkdk
aoexn, bbbb, aaaa,ccc, ??? ";
//条件 字符串
$pattem1 = "a";
//字符串分隔符 字符串
$pattem3 = ',';
//被替换的内容
$rep = "PHP中文网";
//替换个数
$num = 2;


// 1. 用字符串函数 explode分隔 字符串为数组
$a = explode($pattem3, $str);
echo "根据{$pattem3}号用字符串函数explode 分隔字符串生成的 目标数组 :" . '<br>';
print_r($a);
echo '<hr>';

// 2.用字符串函数 strstr strrchr 在字符串中查找满足条件的内容
echo "要查找的内容:{$pattem1} " . '<br>';
echo '用字符串函数 strstr 查找字符串中第一个满足条件的后面内容 : ' . '<br>';
print_r(strstr($str, $pattem1));
echo '<hr>';
echo '用字符串函数 strstr 查找字符串中第一个满足条件的前面内容 : ' . '<br>';
print_r(strstr($str, $pattem1, true));
echo '<hr>';

echo '用字符串函数 strrchr 查找字符串中最后一个满足条件的后面内容 : ' . '<br>';
print_r(strrchr($str, $pattem1));
echo '<hr>';


//3. 查找并替换
$b = strtr($str, $pattem1, $rep);
echo "用字符串函数strtr 查找全部:{$pattem1},并替换为:{$rep}, 该函数用变量及字符串方式,以较短的数据为准,这里只用p替换了a,hp中文网没能出现: " . '<br>';
print_r($b);
echo '<hr>';
$c = ['a' => 'php中文网', 'c' => '爬虫'];
$b = strtr($str, $c);
echo "用字符串函数strtr 通过数组方式 可以实现全部覆盖和多条件替换 : " . '<br>';
print_r($b);
echo '<hr>';

//4. 删除字符串空格或其它内容
echo "用字符串函数trim 移除两边的 空格及不可见制表符 空 换行 回车 " . '<br>';
print_r(trim($b));
echo '<hr>';

echo "用字符串函数trim 移除两边的 ?, 注意中英文字符集,不可见制表符" . '<br>';
print_r(trim(trim($b), "?"));
echo '<hr>';
?>


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