正则表达式
<?php /* 正则表达式 正则表达式是一种描述字符串结构的语法规则,是一个特定的格式化模式,可以匹配,替换,截取匹配的字串。对也用户来说 可能以前没有接触过DOS,如果想匹配当前文件夹下所有的文本文件可以输入“dir *.txt”命令 按Enter键后所有的文本文件就将会被列出来。这里的“*.txt”就可以理解为一个简单的正则表达式 正则表达式的语法规则 行定位符(^&$) 行定位符就是用力啊描述字符串的边界。“^”表示开始 “$“表示结尾 单词定界符(\b,\B) \b 表示查找的自创为一个完整的单词 例如: \bghost\b \B 表示它匹配的字串不能是个完整的单词, 而是其它单词或字串的一部分: 例如: \Bhos\B 字符类([]) 正则表达式是区分大小写的,如果要忽略大小写可使用 方括号表达式”[]“。只要匹配字符出现在方括号内,即可表示 匹配成功。但是一个方括号只能匹配一个字符 例如: 要匹配tm不区分大小写,那么应写成: [Tt][Mm] 选择字符(|) 还有一种方法可以实现上面的匹配模式,就是使用选择字符(|) 上面的例子可以写成[T|t][M|m] 连接符(-) 连字符可以表示字符的范围,如所有26位大小写字母可以表示成 [a-zA-Z] 排除字符([^]) 如排除上例所有字母 [^a-zA-Z] 该匹配的就是不以字母和下划线开头的变量名。 限定符(?*+{n,m}) 当Google搜索只有一页时,不显示google标志,只有大于 等于2是才显示google。说明字母o最少为两个,最多为20个 那么正则表达式为: go{2,20}gle 点好字符(.) 如果遇到这样的题:写出一个5-10个以s开头,t结尾的单词,这是有 很大难度的。如果题目并不告知第一个字母,而是中间任意一个 难度会更大。 在正则表达式中可以通过点字符来实现这样的匹配、(.)点字符可以 匹配出换行符以外的任意一个字符。注意:是除了换行以外的任意字符 。如匹配一S开头,t结尾,中间包含一个字母的单词格式如下: ^s.t$ 再举一个例子,匹配一个单词,它的第一个字母为r,第3个字母为s 最后一个字母为t 能匹配该单词的正则表达式为: ^r.s.*t$ 转义字符(\) 正则表达式中的转义字符(\)和php中的大同小异,都是将特殊字符(如“.”、“?”、“\”等) 变为普通的字符。 反斜线(\) 除了可以做转义字符以外,反斜线还有其他一些功能 括号字符(()) 反向引用 反向引用,就是依靠子表达式的“记忆”功能来陪陪连续出现的 字符串货字母。如匹配连雪的两个it,首先将单词it作为分组,然后 在后面加上“\1”即可。格式为: (it)\1 这是最简单的引用格式。如果要匹配的字串不固定,那么就将括号内的 字串写成一个正则表达式。如果使用了多个分组,那么可以用“\1”、“\2”来表示每个分组 (顺序是从左到右)如: ([a-z])([A-Z])\1\2 */ ?>