Hui 的个人资料phpbird's space照片日志列表更多 ![]() | 帮助 |
|
2006/10/22 delimiter of Regular ExpressionThe syntax for patterns used in these functions closely resembles Perl. The expression should be enclosed in the delimiters, a forward slash (/), for example. Any character can be used for delimiter as long as it's not alphanumeric or backslash (\). If the delimiter character has to be used in the expression itself, it needs to be escaped by backslash. Since PHP 4.0.4, you can also use Perl-style (), {}, [], and <> matching delimiters. See Pattern Syntax for detailed explanation.
摘自php manual
任何非字母,数字和\的字符都可以当做delimiter,好处,估计是可以不和expression里面的字符冲突,比如,如果里面有一个/,那么就用#好了。
知识的力量。 在PHP中使用与Perl兼容的正则表达式1 前言 PHP被大量的应用于Web的后台CGI开发,通常是在用户数据数据之后得出某种结果,但是如果用户输入的数据不正确,就会出现问题,比如说某人的生日是 "2月30日"!那应该怎么样来检验暑假是否正确呢? 在PHP中加入了正则表达式的支持,让我们可以十分方便的进行数据匹配。 2 什么是正则表达式: 简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如: Perl或PHP脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。
在某个Linux网站上面有这样的话:"如果你问一下Linux爱好者最喜欢什么,他可能会回答正则表达式;如果你问他最害怕什么,除了繁琐的安装配置外他肯定会说正则表达式。"
正如上面说的,正则表达式看起来非常复杂,让人害怕,大多数的PHP初学者都会跳过这里,继续下面的学习,但是PHP中的正则表达式有着可以利用模式匹配找到符合条件的字符串、判断字符串是否合乎条件或者用指定的字符串来替代符合条件的字符串等强大的功能,不学实在太可惜了…… 3 正则表达式的基本语法: 一个正则表达式,分为三个部分:分隔符,表达式和修饰符。
分隔符可以是除了特殊字符以外的任何字符(比如"/ !"等等),常用的分隔符是"/"。表达式由一些特殊字符(特殊字符详见下面)和非特殊的字符串组成,比如"[a-z0-9_-]+@[a-z0-9_ -.]+"可以匹配一个简单的电子邮件字符串。修饰符是用来开启或者关闭某种功能/模式。
下面就是一个完整的正则表达式的例子:
上面的正则表达式"/"就是分隔符,两个"/"之间的就是表达式,第二个"/"后面的字符串"is"就是修饰符。
在表达式中如果含有分隔符,那么就需要使用转义符号"\",比如"/hello.+?\/hello/is"。转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要"\"来转义,比如"\d"代表全体数字。 4 正则表达式的特殊字符: 正则表达式中的特殊字符分为元字符、定位字符等等。
元字符是正则表达式中一类有特殊意义的字符,用来描述其前导字符(即元字符前面的字符)在被匹配的对象中出现的方式。元字符本身是一个个单一的字符,但是不同或者相同的元字符组合起来可以构成大的元字符。 *元字符:
*定位字符: 定位字符是正则表达式中又一类非常重要的字符,它的主要作用是用于对字符在匹配对象中的位置进行描述。
*括号: 正则表达式除了可以用户匹配,还可以用括号"()"来记录需要的信息,储存起来,给后面的表达式读取。 比如:
就是记录邮件地址的用户名,和邮件地址的服务器地址(形式为username@server.com之类的),在后面如果想要读取记录下来的字符串,只是需要用"转义符+记录的次序"来读取。比如"\\1"就相当于第一个"[a-zA-Z0-9_-]+ ","\\2"相当于第二个([a-zA-Z0-9_-]+),"\\3"就是第三个(.[a-zA-Z0-9_-])。但是在PHP中,"\"是一个特殊的字符,需要转义,所以"\1"到了PHP的表达式中就应该写成"\\\\1"。 其他特殊符号: "|":或符号"|"和PHP里面的或一样,不过是一个"|",而不是PHP的两个"||"!意思就是可以是某个字符或者另一个字符串,比如"/abcd|dcba/"可能匹配"abcd"或者"dcba"。 5 贪婪模式: 前面在元字符中提到过"?"还有一个重要的作用,即"贪婪模式",什么是"贪婪模式"呢? 比如我们要匹配以字母"a"开头字母"b"结尾的字符串,但是需要匹配的字符串在"a"后面含有很多个"b",比如"a bbbbbbbbbbbbbbbbb",那正则表达式是会匹配第一个"b"还是最后一个"b"呢?如果你使用了贪婪模式,那么会匹配到最后一个"b",反之只是匹配到第一个"b"。 使用贪婪模式的表达式如下:
不使用贪婪模式的如下:
6 修饰符: 在正则表达式里面的修饰符可以改变正则的很多特性,使得正则表达式更加适合你的需要(注意:修饰符对于大小写是敏感的,这意味着"e"并不等于"E")。正则表达式里面的修饰符如下:
2006/10/7 国庆+中秋的长途旅行贝贝比他爹妈强,这么小就进行了一次长途旅行,从上海到安徽外婆家,从外婆家到芜湖,从芜湖到郑州,从郑州又到上海,估计要有2kkm。
总体来说表现很不错,在车上的时候,大部分时间都是睡觉,不怎么闹人。
带小孩出门真麻烦,别说远途了,就是在家出个门,就要专门拿个包,里面放上纸巾,尿片,护臀霜,毛巾,帽子,外套什么的。
在她外婆家看到贝贝,已经是1个月后了,变化挺大的,又胖了一圈,又拍了好多照片,空了整理一下传上来。
小家伙会看电视,会自己睡觉的时候笑,也会动不动地发火,哭的惊天动地。
在外婆家待了2天就去芜湖亲戚家路演了一番,就卧铺去郑州了。外婆外公送上车后,抹眼泪的动作让我也鼻子酸酸的。想想是啊,贝贝在这里买的各种各样的装备,这1个月照顾的是无微不至,她舅舅在贝贝要走的那天一早上就抱着她跟她玩儿,8点钟上班,7点55才出家门。 |
|
|