定界符 /
PHP的定界符 一般用/ 也可以用# (php正则表达式是字符串类型,js是特定的类型不用引号);
行定位符 ^ $
^ 行开始 $ 行结束 $regexp = '/^(www.gengwenx.com)?$/i';
修饰符 i m s x
i 表示忽略大小写;
m 多文本模式;
s 单行文本模式;
x 忽略空白字符;
点号(.)操作符
匹配任何操作符(不包含换行符);
表达式中的反斜杠 \
表达式中的反斜杠有多重意义,如转义、指定预定义的字符集、定义断言、显示不打印的字符。
转义字符
转义字符主要是将一些特殊字符转义为普通字符。而这些常用的特殊字符有 '.'、'?'、'\'等。
指定预定义的字符集
\d 任意一个十进制数字[0-9];
\D 任意一个非十进制数字;
\s 任意一个空白字符(空格、换行符、换页符、回车符、字表符);
\S 任意一个非空白字符;
\w 任意一个单词字符;
\W 任意一个非单词字符;
选择符 | 表示'或'
<?php
$regexp = '/^(gengwenx@yeah.net|wenx1225@yeah.net)$/i';
$gengwenx = 'gengwenx@yeah.net';
$wenx1225 = 'wenx1225@yeah.net';
preg_match($regexp,$gengwenx,$matchs);
var_dump($matchs);
preg_match($regexp,$wenx1225,$matchs);
var_dump($matchs);
注意使用'[]'与'|'的区别,在于'[]'只能匹配单个字符,而'|'可以匹配任意长度的字符串。在使用'[]'的往往配合链接字符'-'一起使用,如[a-z];
排除字符,排除操作
正则表达式提供了”^”来表示排除不符合的字符,^一般放在[]中。如[^1-5],该字符不是1~5之间的数字。
限定符(?*+{n,m})
限定符主要是用来限定每个字符串出现的次数。
? 0或1次
* 0或多次
+ 1或多次
{n} n次
{n,} 至少n次
{n,m} n到m次