PHP中元字符与转义

日期:2015年04月16日 作者: 分类:编程 浏览:3684

正则表达式中具有特殊含义的字符称之为元字符,常用的元字符有:

 \ 一般用于转义字符
 ^ 断言目标的开始位置(或在多行模式下是行首)
 $ 断言目标的结束位置(或在多行模式下是行尾)
 . 匹配除换行符外的任何字符(默认)
 [ 开始字符类定义
 ] 结束字符类定义
 | 开始一个可选分支
 ( 子组的开始标记
 ) 子组的结束标记
 ? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词)
 * 量词,0 次或多次匹配
 + 量词,1 次或多次匹配
 { 自定义量词开始标记
 } 自定义量词结束标记
//下面的\s匹配任意的空白符,包括空格,制表符,换行符。
//[^\s]代表非空白符。[^\s]+表示一次或多次匹配非空白符。
$p = '/^我[^\s]+(苹果|香蕉)$/';
$str = "我喜欢吃苹果";
if (preg_match($p, $str)) {
    echo '匹配成功';
}

元字符具有两种使用场景,一种是可以在任何地方都能使用,另一种是只能在方括号内使用,在方括号内使用的有:

 \ 转义字符
 ^ 仅在作为第一个字符(方括号内)时,表明字符类取反
 - 标记字符范围

其中^在反括号外面,表示断言目标的开始位置,但在方括号内部则代表字符类取反,方括号内的减号-可以标记字符范围,例如0-9表示0到9之间的所有数字。

//下面的\w匹配字母或数字或下划线。
$p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/';
$str = "我的邮箱是Spark.eric@imooc.com";
preg_match($p, $str, $match);
echo $match[0];

标签:

除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址

本文地址:https://wanglu.info/2015/04/498.html