跳到主要内容

请列举PHP正则的指定预定义的字符集 ?

参考答案:

在PHP的正则表达式中,有一些预定义的字符集(也称为字符类)用于匹配特定类型的字符。这些预定义的字符集以反斜杠\开头,后跟特定的字符或序列。以下是一些常用的预定义字符集:

  1. \d:匹配任意一个数字字符,相当于[0-9]
$pattern = '/\d+/';
$string = 'abc123def456';
preg_match($pattern, $string, $matches);
echo $matches[0]; // 输出:123
  1. \D:匹配任意一个非数字字符,相当于[^0-9]
$pattern = '/\D+/';
$string = 'abc123def456';
preg_match($pattern, $string, $matches);
echo $matches[0]; // 输出:abcdef
  1. \w:匹配任意一个单词字符(字母、数字或下划线),相当于[a-zA-Z0-9_]
$pattern = '/\w+/';
$string = 'Hello_World123';
preg_match($pattern, $string, $matches);
echo $matches[0]; // 输出:Hello_World123
  1. \W:匹配任意一个非单词字符,相当于[^a-zA-Z0-9_]
$pattern = '/\W+/';
$string = 'Hello! World?';
preg_match($pattern, $string, $matches);
echo $matches[0]; // 输出:! ?
  1. \s:匹配任意一个空白字符(空格、制表符、换行符等),相当于[\f\n\r\t\v]
$pattern = '/\s+/';
$string = "Hello\nWorld\t!";
preg_match($pattern, $string, $matches);
echo $matches[0]; // 输出:换行符+制表符
  1. \S:匹配任意一个非空白字符,相当于[^\f\n\r\t\v]
$pattern = '/\S+/';
$string = "Hello World!";
preg_match($pattern, $string, $matches);
echo $matches[0]; // 输出:Hello World!
  1. .:匹配任意一个字符(除了换行符)。
$pattern = '/./';
$string = "Hello";
preg_match($pattern, $string, $matches);
echo $matches[0]; // 输出:H

请注意,这些预定义的字符集在正则表达式的上下文中使用,并且可以与其他元字符和修饰符结合使用,以构建更复杂的匹配模式。在使用这些预定义字符集时,请确保将其放在正确的正则表达式语法中。