3.5.5 匹配字符类
一个字符类就像正则表达式内部的一种微型语言,表示与一组方括号([])内所定义的
那个组的某部分相匹配的任何一个字符。当需要查找两个字符中的任何一个都适合的串时,
使用字符类方括号最为方便。如模式“/c[oa]t”可以匹配cat,也可以匹配cot。
字符类中的元字符集与正规表达式中的普通列表稍有不同。字符类中最重要的元字符之
一是短横线(-),该元字符被称为范围界定符。可以在一个字符类中指定一个字符范围,如
指定[2-6]来取代[23456]。
提示
如果想匹配短横线自身,则必须在短横线前面加一个反斜线,如[1-9\-]将
匹配任何数字或者短横线。
一个字符类可以包含多个范围。如果只需要匹配字母和数字字符,可以使用模式
“a-zA-Z0-9”。
如果需要匹配不在某个字符集内的任意字符,可以使用否定字符类。在一个字符类中,
插入符(^)表示一个否定字符类(并不是前面提到的“行开始”普通的正则表达式含义)。
实例 3-34 匹配字符类
本实例演示了使用短横线和插入符来匹配字符类,如代码3-34 所示。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> preg_match_8.php </title>
<meta charset="UTF-8">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<?php
$pattern="/[^A-Z]$/";
$str="I like PHP";
if (preg_match($pattern,$str))
print("发现一个匹配!");
else
print("没发现一个匹配!");
?>
<hr>
<?php
$pattern="/[^A-Z]$/";
$str="i love you!I like PHP";
if (preg_match($pattern,$str))
print("发现一个匹配!");
else
print("没发现一个匹配!");
?>
<hr>
<?php
$pattern="/[^A-Z]$/";
$str="I like you";
if (preg_match($pattern,$str,$matches))
{
print("发现一个匹配!");
var_dump($matches);
}
else
print("没发现一个匹配!");
?>
</body>
</html>
没发现一个匹配!
没发现一个匹配!
发现一个匹配!array
0 => string 'u' (length=1)