php posix正则,PHP POSIX正则表达式

1 基础知识

正则表达式是一种描述一段文本模式的方法。到目前为止,我们前面所用到过的精确(文字)匹配也是一种正则表达式。例如,前面我们曾搜索过正则表达式的术语,像"shop"和"delivery"。

在PHP中,匹配正则表达式更有点像strstr()匹配,而不像相等比较,因为是在一个字符串的某个位置(如果不指明则可能在字符串中的任何位置)匹配另一个字符串。例如,字符串"shop"匹配正则表达式"shop"。它也可以匹配正则表达式"h"、"ho",等。

除了精确匹配字符外,还可以用特殊字符来指定表达式的元意(meta-meaning)。例如,使用特殊字 符,可以指定一个在字符串开始或末尾肯定存在的模式,该模式的某部分可能被重复,或模式中的字符属于特定的某一类型。此外,还可以按特殊字符的出现来匹 配。接下来,我们将逐个讨论这些变化。

2 字符集和类

使用字符集可以马上给出比精确匹配功能还要强大的正则表达式。字符集可以用于匹配属于特定类型的任何字符;事实上它们是一种通配符。

首先,可以用字符作为一个通配符来代替除换行符(n)之外的任一个字符。例如,正则表达式:

.at

可以与"cat"、"sat"和"mat"等进行匹配。通常,这种通配符匹配用于操作系统中的文件名匹配。

但是,使用正则表达式,可以更具体地指明希望匹配的字符类型,而且可以指明字符所属的一个集合。在前面的例子中,正则表达式匹配"cat"和"mat",但也可以匹配"#at"。如果要限定它是a到z之间的字符,就可以像下面这样指明:

[a-z]at

任何包含在方括号([])中的内容都是一个字符类——一个被匹配字符所属的字符集合。请注意,方括号中的表达式只匹配一个字符。

我们可以列出一个集合,例如:

[aeiou]

可以用来表示元音子母。

也可以描述一个范围,正如前面用连字符那样,也可以是一个范围集:

[a-zA-Z]

这个范围集代表任何的大小写字母。

此外,还可以用集合来指明字符不属于某个集。例如:

[^a-z]

可以用来匹配任何不在a和z之间的字符。当把脱字符号(^)包括在方括号里面时,表示否。当该符号用在方括号的外面,则表示另外一个意思,我们稍后将详细介绍。

3 重复

通常,读者会希望指明某个字符串或字符类将不止一次地出现。可以在正则表达式中使用两个特殊字符代替。符号“*”表示这个模式可以被重复0次或

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值