正则表达式允许用户通过使用某种特殊字符构建匹配模式,然后把匹配模式与文件中的数据、程序输入或者Web页面的表单输入等目标对象进行比较,根据这些输入中是否包含匹配模式,来执行相应的程序。
目前有两种不同规范的正则表达式:
- POSIX规范:在兼容 POSIX 的 UNIX 系统上,grep 和 egrep 之类的工具都遵循 POSIX 规范,一些数据库系统中的正则表达式也匹配 POSIX 规范。
- PCRE 规范:为 Perl Compatible Regular Expressions 的缩写,中文即 Perl 兼容正则表达式,由 Philip Hazel 开发的 Perl 库,为很多现代工具所使用,大多数编程语言的正则表达式也都是集成该规范。
针对两种不同的正则表达式规范,PHP 提供了两组不同的函数库,分别为 POSIX Regex扩展库和
PCRE扩展库,每个库对应特定的表达式。
从PHP5.3.0开始,POSIX Regex 扩展将被废弃,所有调用本扩展中函数都将提示 E_DEPRECATED 错误
下面就对 PCRE 正则语法进行学习
PCRE 正则语法
分隔符
当使用 PCRE 函数的时候,模式需要由分隔符闭合包裹。分隔符可以使任意非字母数字、非反斜线、非空白字符。
经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)。
1 |
/foo bar/ |
如果分隔符需要在模式内进行匹配,它必须使用反斜线进行转义。
原子
原子是正则表达式的最基本的组成单位,而且必须至少包含一个原子。常见的有:
1 |
. 匹配除「\r」「\n」之外的任何单个字符 |
元字符
元字符用来修饰原子的字符,不可以单独出现。
1 |
//量词 |
模式修正符
1 |
i 大小写不敏感匹配。 |
PCRE函数
1 |
preg_filter — 执行一个正则表达式搜索和替换 |
常用正则表达式
FROM :blog.cfyqy.com | Author:cfyqy
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论