PHP提供了一种强大的方法创建和匹配文本中的模式。可以创建一些规则来查找文本串中的模式。这些规则就称为正则表达式,或者简写为regex。 正则表达式表示要匹配的一个字符模式。常常作为验证表单的重要工具:比如电话号码域,电子邮箱域。 举个例子:/^\d\d\d$/ 来简单说明下: 所有正则表达式都是以斜线开始和结尾的,^这个表示从串的开始处匹配,$表示串必须结束。\d代表数字,这个表达式的意思是说,串必须以一个数字开头,中间是一个数字,然后以一个数字结尾,也就表示三个数字了。还可以采用一种更加简洁的方法重写这个正则表达式,这里要用到大括号,大括号用于指示重复: /^\d{3}/ 它与上面的模式表示同样的含义。 常见的元字符: \d:这个元字符要查找一个数字,它会匹配0到9之间的任何数字,\d本身只匹配一位数字,所以如果希望匹配一个两位数字,则要用\d\d或者\d{2} \s:查找空白符,不只是按下空格键在屏幕上显示的空格子夫;它还能匹配制表符,换行或者回车符。同样滴,要记住\s一次只匹配一个这样的字符。如果希望匹配一行中的两个空格,则需要使用\s\s或者\s{2} \w:查找任何字母数字字符,换句话说,可以是一个字母或者一个数字。它会匹配以下范围内的任意一个字符,包括a-z和A-Z,以及0-9 ^ : 开始位置 $:结束位置 正则表达式支持一个成为量词的特性,允许指定字符或者元字符在一个模式中出现多少次: {}:大括号相当于一个量词,指出前面的字符应当出现多少次。 {min,max}:很明显,是个范围,比如{1,3} 就是要求应当在匹配中出现1,2或者3次。 + 前面的字符或者元字符必须重复1次或者多次。大于等于1 ?:前面的字符或者元字符必须出现1次或者根本不出现。0 ,1 * :字符或者元字符可以出现1次或者多次,或者根本不出现。大于等于0 字符类,是一组匹配单个字符的规则,要指示一组字符或者元字符属于一个字符类,只需要用中括号将它们包围起来 [ ]. 例如: [0-2] 它会匹配0,1,2 [A-D] 这会匹配A,B,C或者是D. 可以结合PHP函数preg_match()使用这些模式,这个函数取一个正则表达式模式和一个文本串,如果没有匹配,函数返回false,如果匹配,则返回true。 preg_match($regex,$onestring) $regex,要用单引号包围,第二个参数就是要检查的串了。可以利用preg_match()在脚本中支持复杂的验证功能. if(preg_match($regx,$onesring)){ 成功匹配执行代码。 }else{ 不成功的话执行的代码。 } preg_replace()函数在使用正则表达式完成模式匹配方面比preg_match()更进一步,除了确定一个给定模式是否与一个给定文本串匹配外,它还允许一个替换模式取代串中的匹配文本。 preg_replace($pattern,$replacement,$onestring) $pattern:需要查找这些不想要的字符. $replaement:找到一个不想要的字符时,希望把它替换为这个模式。 $onestring:要完成查找--替换的串. $new_year = preg_replace('/200[0-9]/','2015',' 今年是2015年'); 第一个正则告诉preg_replace查找2000到2009的匹配,找到匹配时,会替换为第二个参数,范围是在第三个参数中.