正则表达式基础教程(php)

Posted 心雨星空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式基础教程(php)相关的知识,希望对你有一定的参考价值。

正则表达式

 

正则表达式是一种字符串搜索工具和匹配工具

php常用的正则表达式函数如下:

Preg_match($pattern,$subject)  表单验证等

Preg_match_all($pattern,$subject,array&$matches)

Preg_replace($pattern,$replacement,$subject)  非法词语过滤等

Preg_filter($pattern,$replacement,$subject)

Preg_grep($pattern,array,$input)

Preg_split($pattern,$subject)

Preg_quote($str)

 

 

$pattern=正则表达式

$subject=匹配的目标数据

 

正则表达式基本语法

界定符

$pattern=’/[0-9]/’;

#[0-9]#

{[0-9]}

 

原子

  • 可见原子

Unicode 编码表中用键盘输出后肉眼可见的字符

有哪些?

标点:“_?.等等

--英文字母数字 a-z, A-Z,0-9

--汉字、日文、阿拉伯文等其他语言文字

--数理化公式符号

--其他可见字符

 

  • 不可见原子

换行符

回车

制表符

空格

其他不可见符号

量词

{n} 表示其前面的原子恰好出现n次

{n,} 表示其前面的原子最少出现n次

{n,m}表示其前面的原子最少出现n次,最少出现m次

*匹配 0次、1次或者多次其之前的原子,即{0,}

+ 匹配1次或者多次其之前的原子,即{1,}
? 匹配0次或者1次其之前的原子,即{0,1}

边界控制

^ 匹配字符串开始的位置

$ 匹配字符串结尾的位置

()匹配其中的整体为一个原子

模式单元

修正模式: 默认为贪婪模式 ,懒惰模式 实在后面加个大写的U 例如 /123456/U

常见的修正模式

U:懒惰匹配

u:贪婪匹配

i:忽略英文字母大小写

x:忽略空白(回车,空格等)

s       让元字符. 匹配包括换行符在内的所有字符

Regexpl正则调试工具

匹配中文时,为避免编码格式不同产生的错位,建议先将中文转换成Unicode编码

元字符

原子的筛选方式

| 匹配两个或者多个

[]匹配方括号中的任意一个原子

[^]匹配除方括号中的原子之外的任意字符

 

元字符

原子的集合

匹配除换行符之外的任意字符

. 除了换行符之外的任意字符

d 匹配任意一个十进制数字 ,即[0-9]

D 匹配任意一个非十进制数字,即[^0-9]

s 匹配一个不可见原子,即[f v]

S 匹配一个可见原子,即[^f v]

w 匹配任意一个数字、字母或下划线,即[0-9a-zA-Z]

 

 

w:匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。

W:匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。

如果用re.sub(r‘[_|W]‘, ‘‘, text)  会除掉所有的非单词或者下划线"_",

如果用re.sub(r‘[_|w]‘, ‘x‘, text),会用‘x‘替换所有的‘_‘和单词字符

 

常见的正则表达式

.+ 非空

1(3|4|5|7|8)d{9}  匹配中国大陆的手机号

^w+(.w+)*@w+(.w+)+$ 验证邮箱的

^(https?://)?(w+.)+[a-zA-Z]+$ 网址的

 

 

山寨Smarty模板引擎的开发

模板引擎的工作原理

获取模板源文件

编译模板(正则替换)

输出给用户

仿smarty简易模板引擎,在一个标准的PHP系统中,模板引擎肯定是要有的,便于前端工程师和后端工程师把工作分开来,而且前端工程师不需要懂后端的代码。

 

在线调试工具

http://cs.smu.ca/~porter/csc/355/regexpal/

 

 

?: 是 不想被捕获的时候使用 可以提高程序执行速度

以上是关于正则表达式基础教程(php)的主要内容,如果未能解决你的问题,请参考以下文章

[基础]正则表达式

正则表达式基础教程

正则表达式基础教程

PHP 正则表达式总结

(转)Matlab 正则表达式零基础起步教程

php如何正则替换css中的图片路径?