您的位置:首页 > 其它

Preg

2015-06-09 23:30 295 查看
正则表达式: 定界符 + 原子 + 元字符 + 模式修正符

作用:去一个字符串中,匹配想要内容。

定义:有字符簇 ;限定符;定位符;组成一个字符串;

字符簇(原子):一个字符的集合

语法:[];

限定符:限定个数

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(正则表达式,"被拆分的字符串")

作业:

目录的递归遍历?

今天所有正则表达式的例子,总结一遍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: