Preg


正则表达式: 定界符 + 原子  + 元字符 + 模式修正符
作用:去一个字符串中,匹配想要内容。
定义:有字符簇 ;限定符;定位符;组成一个字符串;
字符簇(原子):一个字符的集合
语法:[];
限定符:限定个数
preg_match_all(正则表达式, 字符串, $arr);
preg_match($pattern, $subject);
preg_replace — 执行一个正则表达式的搜索和替换
preg_split — 通过一个正则表达式分隔字符串
\d [0-9]
\w [0-9a-zA-Z_]
preg_replace($pattern, $replacement, $subject);
preg_split($pattern, $subject);


定位符:
字符串的开始  ^
字符串的结束  $
作用:判断一个字符串,从开始 一到结束符合某
"?" = {0,1}
"*" = {0,}
"+" = {1,}
复习:
新建
bool touch(path)
打开
fopen()
is_file()
file_exist()

fread()
fgets()
fgetss() — 从文件指针中读取一行并过滤掉 HTML 标记
file_get_contents()
filesize()

fwrite()
file_put_contents()
关闭
fclose()
目录操作函数
mkdir()    新建目录
rmdir()    删除目录
opendir()  打开目录
readdir()  读取
closedir() 关闭
scandir()  列出指定路径中的文件和目录 返回是一个数组
水印 
imagecopy()
imagecopymerge(目标图片,水印图片,dx,dy,0,0,sw,sh,alpha)
alpha:0-100
删除多级空目录
w/m/n
function rmdirMore($path){
$pathArr=explode("/",$path);//array('w','m','n')
$num=count($pathArr);
for($i=0;$i<$num;$i++){
//w/m/n  w/m  w
$newPath=implode("/",$pathArr);
$re=rmdir($newPath);
//把最后一个元素去掉
array_pop($pathArr);
}
return $re;
}
目录递归遍历
遇到目录自己调用自己
function getDir($path)
{//$path='a';
if(is_dir($path))
{
//遍历
$arr=scandir($path);
$newArr=array();
foreach($arr as $v)
{
if($v!="." && $v!="..")
{
$newPath=$path."/".$v;
echo $newPath,"<br/>";
if(is_dir($newPath))
{
getDir($newPath);//自己调用自己
}
}
}
}
else
{
return false;
}
}
返回数组:
1、使用静态变量。
2、数组拼接。


正则表达式:
作用:去一个字符串中,匹配想要内容。
定义:有字符簇 限定符 定位符 组成一个字符串
字符簇:一个字符的集合
语法:[abc]
[a-z]  小写字母
[A-Z]  大写字母
[a-zA-Z]大写和小写字母
[0-9]  数字
[&\-\r\n]
.  任意字母,不包含 换行
\d [0-9]
\w [0-9a-zA-Z_]
\D [^0-9]
\W [^0-9a-zA-Z_]
\s 空白符
作用:找什么
限定符:限定找的个数
作用:找几个
语法:
{m,n}  m到n个  {2,5}
{m,}  m个以上  {2,}
{0,n} n个以下  {0,2}
{m} 每个
[^abc] 除了abc;取反;
? {0,1} 0个或1个
+ {1,}  1个以上
* {0,}  0个以上
执行一个正则表达式,去字符串中把匹配的内容获取到:
int preg_match_all(正则表达式,字符串,$arr);
0|1 preg_match(正则表达式,字符串)
匹配过程:从左至右,逐个匹配,如果在字符簇中,
计数器加一,当遇到不符合的,本次匹配停止,
验证将个数是否符合,符合,获取下来。
当计数器到最大个数,也要停止。
定位符:
字符串的开始 ^
字符串的结束 $
作用:
判断一个字符串,从开始到结束符合某个规格
判断一个字符串是否以某个规则开始
判断一个字符串是否以某个规则结束
子表达式:给表达式的某部分加上(子表达式)
说明:子表达式的后面可以使用限定符,指定子表达式匹配内容出现的次数
邮箱正则表达式:
样子:
邮箱的名称 英文字母 数字 中横线 下划线  2位以上
@
域名 数字 字母 中横线  一个以上
后缀 字母  两位以上


/^[\w\-]{2,}@[0-9a-zA-Z\-]+(\.[a-zA-Z]{2,})+$/
/\w+@\w+(\.\w+)+/
或的使用
|
说明:|的优先级最低
x|y|z
xyz|abc  xyz   abc
解决.*的贪婪性, .*?
匹配模式:
i  使得 [a-z] 包含大写 [A-Z]包含小写
s  使得.中包含换行;修正'.'的换行符;
D  
手机号验证???
1、1开头 ,共11位
2、第二位  3 4 5  7 8
3、后面的0-9
/^1[34578]\d{9}$/


省份证号的格式??


邮编:
/^\d{6}$/
时间H:i:s
/^\d{2}\:\d{2}\:\d{2}$/  35:99:88


H:00-23   0-2  0-9
0[0-9]|1[0-9]|2[0-3]
i:00-59
[0-5][0-9]
s:00-59
[0-5][0-9]

[0-1][0-9]|2[0-3]:[0-5][0-9]:[0-5][0-9]
日期 y-m-d
1900---1900+
(19|20)[0-9][0-9]
m 01-12
0[1-9]|1[0-2]
d 01-31
0[1-9]|[1-2][0-9]|3[0-1]


整数:
+123
-32143
233
/^[+\-]?[1-9]\d*|0$/


preg_match_all()
preg_match()


$str="dfsadf32134dfsadf3245fsdfsad";
string  preg_replace(正则表达式,"替换成什么","被替换的字符串")
array preg_split(正则表达式,"被拆分的字符串")


作业:
目录的递归遍历?
今天所有正则表达式的例子,总结一遍。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值