PHP强化之11 - PCRE正则表达式

一、简介

正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。

二、语法

当使用 PCRE 函数的时候,模式需要由分隔符闭合包裹。分隔符可以使任意非字母数字、非反斜线、非空白字符。经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)。

合法模式示例:

/<\/\w+>/
#^[^0-9]$#
|(\d{3})-\d+|Sm       ## 可以在结束分隔符后面增加模式修饰符
/^(?i)php[34]/
{^\s+(\s+)?$}       ## 括号样式的分隔符,左括号和右括号分别作为 开始和结束 分隔符。
%[a-zA-Z0-9_-]%

非法模式示例:

/href='(.*)'     ## 缺失结束分隔符
/\w+\s*\w+/J     ## 未知模式修饰符"J"
1-\d3-\d3-\d4|     ## 缺失开始分隔符

如果分隔符需要在模式内进行匹配,它必须使用反斜线进行转义。如果分隔符经常在 模式内出现, 一个更好的选择就是是用其他分隔符来提高可读性。

/http:\/\//
#http://#

三、正则表达式

由上面介绍的合法分隔符所包含的部分,就是我们主要去了解的正则表达式部分了。下面我将对一些常用的部分做一下归类:

1、 原子
原子是组成正则表达式的基本单位,在分析正则表达式时,应作为一个整体。
包括以下内容:
> 单个字符、数字,如a-z,A-Z,0-9。
> 模式单元,如(ABC)可以理解为由多个原子组成的大的原子。
> 原子表,如 [ABC]。
> 重新使用的模式单元,如:\1
> 普通转义字符,如:\d, \D, \w
> 转义元字符,如:\*,\.
> 元字符

2、元字符

  • ^ 断言目标的开始位置(或在多行模式下是行首)
  • $ 断言目标的结束位置(或在多行模式下是行尾)
  • . 表示任意一个除换行符之外的字符
  • [] 表示单个字符的原子表
    [^] 表示除中括号内原子之外的任何字符 是[]的取反
    [-] 表示允许的范围,如[0-9]表示任意一位数字
  • {m} 表示对前面原子的数量控制,表示是m次
    {m,} 表示对前面原子的数量控制,表示是至少m次
    {m,n}表示对前面原子的数量控制,表示是m到n次
  • * 量词,0 次或多次匹配,等价于{0,}
  • + 量词,1 次或多次匹配,等价于{1,}
  • ? 作为量词,表示 0 次或 1 次匹配,等价于{0,1} 。位于量词后面用于改变量词的贪婪特性。
  • () 表示一个整体原子,【还有一个子存储单元的作用】。 也可以使用?:来拒绝子存储。 (?:
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值