通过使用Perl正则表达式还可以实现其他功能,如使用各种元字符来搜索匹配。元字符
就是前面有反斜线的字母字符,表示某种特殊含义。
表5-6中是常用的元字符。
字符
描述
\A 只匹配字符串开头
\b 匹配单词边界
\B 匹配除单词边界之外的任意字符
\d 匹配数字字符,它与[1-9]相同
\D 匹配非数字字符
\s 匹配空白字符
\S 匹配非空白字符
[] 包围一个字符类
() 包围一个字符分组或定义一个反引用
$ 匹配行尾
^ 匹配行首
. 匹配除换行之外的任何字符
\ 引出下一个元字符
\w 匹配任何只包含下划线和字母数字字符的字符串
\W 匹配没有下划线和字母数字字符的字符串
每个元字符只能匹配一个字符,如果要匹配多个,可以使用POSIX正则表达式中的特殊字符。
POSIX正则表达式还可以用来匹配多个数字字符。表5-6中的常用元字符都比较好理解,下面通过一行代码来讲解如何使用Perl正则表达式:
^[a-zA-Z]([a-zA-Z0-9]*[-_.]?[a-zA-Z0-9]+)+@([\w-]+\.)+[a-zA-Z]{2,}$
上述代码是一个用来验证邮箱的正则表达式,邮箱名必须是字母和数字组合而成,接下来
是一个 @符号 ,紧接着是匹配任何甚至包含下划线和任意字母、数字字符的字符串,后面是字
母字符。
3.定界符定界符的主要作用是用来限定正则匹配表达式的左右界限符号,左右要求完全一致,表达
式应被包含在定界符中,常用的符号有“/”和“@”等,任何不是字母、数字或反斜线“\”
的字符都可以作为定界符。如果作为定界符的字符,那么就要使用反斜线来转换。
$pattern = "/D:\/\/ch1\/phpFile/";
$subject = "D://ch1/phpFile";
echo preg_match($pattern, $subject);
$pattern = "#D://ch1/phpFile#";
$subject = "D://ch1/phpFile";
echo preg_match($pattern, $subject);