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(正则表达式,"被拆分的字符串")
作业:
目录的递归遍历?
今天所有正则表达式的例子,总结一遍。
作用:去一个字符串中,匹配想要内容。
定义:有字符簇 ;限定符;定位符;组成一个字符串;
字符簇(原子):一个字符的集合
语法:[];
限定符:限定个数
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(正则表达式,"被拆分的字符串")
作业:
目录的递归遍历?
今天所有正则表达式的例子,总结一遍。
相关文章推荐
- JQuery Easy UI 使用
- 入门产品经理如何分析设计一个产品
- 实验四报告
- spring和mybatis整合配置
- 快速搭建APP通用框架(自定义UITabbarController+UINavigationController)
- 无限互联学习连载四 NSUserDefaults的使用
- 请求的uri对于此ftp命令无效
- android自动读取短信验证码
- 2015060904 - 性格决定命运吗?
- linux下C/C++编译时系统搜索 include 和 链接库 文件路径的指定
- 使用Spring和SpringMVC管理bean时要注意的一个小细节
- spring配置hibernate的sessionFactory的几种方法
- 摄像头视频采集压缩及传输
- 13.文件权限管理
- 欢迎一起讨论C++ MFC编程。。。
- region xx not deployed on any region server
- 怎么避免在类实现的cpp文件中不要多次进行类声明
- 怎么避免在类实现的cpp文件中不要多次进行类声明
- gd库函数
- 2015060903 - 读书