批改状态:合格
老师批语:完成的不错。
10月17日
正则函数和字符串函数的练习
总结:函数比较多,通过练习了解个大概,实际使用时碰到类似的功能,知道有这么个函数可以用,具体用法还是需要现用现查。
练习代码:
<?php
//需要匹配的字符串集
$str = '~jduls88430jsfhlj/h237502hfslflhs@#%sdfjsd/llksfowelk0(_)_)*dsfjl13921391392swlkKLJGKJlk
slkjfekls jfi{ejlsjfl}sf dks<header>jfos fsljfslfjshttps:\\dfewlop0320~dfljk史蒂芬孙金佛我了jdue222ls
fslesfl;s```l;dfo13801380138mls-=s-d$f=welsd8\' . \'98888)j\' . \'slfjos\' . \'k老师都急疯了是)zhengze.php
001122334455667788jlksj<a>doskKDFJOLMd</a>lsfsf hebao@139.<command type="command checkbox radio" label="Use Command" title="Use Command does stuff" icon="/icons/command.png"> dd keophp
winwein@sina.net aaa BBDcbbccels qw222 222tt
4455667788kS&FW[]EFSDERKLhttpGldfkjd0""khi"lop"w0-oDFWEvl;slls??:""{}|[ok^^%dfk ljfoelld;l8';
echo '<pre>';
// $pattam = '/(jl|sj)|([t]{2})/';
// $a = preg_match_all($pattam, $str, $matches);
// var_dump($a);
// var_dump($matches);
preg_match("/^(http:\/\/)?([^\/]+)/i", "http://blog.snsgou.com/index.php", $matches);
$host = $matches[2];
var_dump($matches);
// 从主机名中取得后面两段 ./
preg_match("/[^\.\/]/", $host, $matches);
echo "域名为:{$matches[0]}";
preg_match("/[^\.\/]+/", $host, $matches);
echo "域名为:{$matches[0]}";
preg_match("/[^\.\/]+\./", $host, $matches);
echo "域名为:{$matches[0]}";
preg_match("/[^\.\/]+\.[^\.\/]/", $host, $matches);
echo "域名为:{$matches[0]}";
preg_match("/[^\.\/]+\.[^\.\/]+/", $host, $matches);
echo "域名为:{$matches[0]}";
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "域名为:{$matches[0]}";
echo '<hr>';
$str = "<pre>学习php是一件快乐的事。</pre><pre>所有的phper需要共同努力!</pre>";
$kw = "php";
preg_match_all('/<pre>([\s\S]*?)<\/pre>/', $str, $mat);
print_r($mat);
for ($i = 0; $i < count($mat[0]); $i++) {
echo $mat[0][$i];
$mat[0][$i] = $mat[1][$i];
echo $mat[1][$i];
$mat[0][$i] = str_replace($kw, '<span style="color:#ff0000">' . $kw . '</span>', $mat[0][$i]);
echo $mat[0][$i];
$str = str_replace($mat[1][$i], $mat[0][$i], $str);
}
echo $str;
echo '<hr>';
$subject = '^ouyangke$zhulaoshi=miejue!\ximen&[] ';
$a = preg_quote($subject);
var_dump($a);
$pattem = '/^(\d+)?\.\d+$/';
$array = array(1, 2, 3.4, 53, 7.9);
$a = preg_grep($pattem, $array);
var_dump($a);
$pattem = '/[\s.]+/';
$subject = 'ouyangke ouyangke zhulaoshi zhulaoshi ximen ximen';
$a = preg_split($pattem, $subject);
var_dump($a);
echo implode($a);
echo '<hr>';
//字符串函数
$str = 'ouyangke,zhulaoshi,ximen';
$arr = explode(',', $str);
print_r($arr);
echo strstr('ouyangke', 'ou'), '<br>';
echo strstr('ouyangke', 'yang', true);
echo '<hr>';
echo strtr('ouyangke', 'ou', 'zahu'), '<br>';
echo strtr('ouyangke', ['ou' => 'zhiu']);
echo '<hr>';
echo strrchr('ouyangke', 'gk'), '<br>';
echo strrchr('ouyangke', 'yang');
echo '<hr>';
echo stristr('ouyangke', 'gk'), '<br>';
echo strpos('ouyangke', 'gk'), '<br>';
echo stripos('ouyangke', 'gk'), '<br>';
echo strripos('ouyangke', 'gk'), '<br>';
echo strrpos('ouyangke', 'y'), '<br>';
// echo substr_replace('gk', 'C', 'ouyangke'), '<br>';
echo str_replace('gk', 'Cii', 'ouyangke'), '<br>';
$replace = array("1: AAA", "2: AAA", "3: AAA");
$b = substr_replace($replace, 'BBB', 3, 3);
var_dump($b);
//正则表达式
/*
1、原子 :普通字符;abc 123 DDC
非打印字符; \n \r \f \t \v
【自定义字符】-->[]包起来的集合:[0-9a-zA-Z] or [3-7]
2、元字符
. 必须和 原子 一起使用,是原子的修饰 和 限定条件
例如: /12./ /ZH./ 匹配除换行符之外的任意字符;
| 匹配2个或多个分支,可理解为并列: 比如 /12|56/
[] 匹配[]中指定的任意一个原子
[^] 匹配除去[]内指定原子的其他任意同类原子,比如[^a-z]
^ 匹配字符串开始位置,必须从指定的集合或原子开始 比如^[A-Z]
$ 匹配字符串结束位置的原子或指定集合 比如[A-Z]$
3、限定符
{n} 表示前面的原子出现n次 比如:[a-z]{5}
{n,} 表示前面原子连续出现不少于n次 比如:[a-z]{1,}
{n,m} 表示前面原子连续出现最少n次,最多m次 比如[0-9]{1,3}
* 前面原子出现0次以上 比如[0-9]* 通配最大情况
+ 前面原子出现1次以上 比如[0-9]+ 只要出现的最大情况
? 前面原子出现0次或1次 比如[0-9]? 通配最大1位的情况
4、预定义字符
\d 匹配任意一个十进制数 等价于 [0-9]
\D 匹配任意字符,除十进制数之外的,上述取反,相当于[^0-9]
\w 匹配任意一个字母数字和下划线字符,等价于 [0-9a-zA-Z]
\W 匹配任意一个除字母数字和下划线之外的字符,等价于 [^0-9a-zA-Z]
\s 匹配任意一个非空白字符(非打印的)
\S 匹配任意一个除空白字符以外的字符
\b 匹配整词的边界 比如/com\b/ /222\b/ 后面必须为空白字符
\B 匹配整词边界以外的部分,上述的取反
5、特殊字符需要在前面增加\转义 有:\*+?.|^$[]()
6、分组符 () 使整体成为一个原子,多个原子组成大原子 比如:/(jl|sj)|([0-9])/
7、界定符 //,正则表达式要包裹在//中
8、修正符 在界定符后面
U 取消贪婪模式(这是默认模式)
i 忽略大小写
s 匹配的字符串当做一行来看
x 模式中的空白忽略不计
9、 正则表达式
转义字符 \
模式单元与原子表 ()、(?:)、(?=)、[]
重复匹配 *、+、?、{n}、{n,}、{n,m}
边界匹配 ^、$、\b、\B
模式选择 |
*/
echo '</pre>';
?>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号