相关函数
preg_match();
preg_match_all();
preg_replace();
preg_split();
preg_filter
preg_quote
preg_replace_callback_array
preg_replace_callback
preg_grep
基础用法
- preg_match
$subject = "abcdef"; $pattern = '/^def/'; $result = preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3); //$result 返回0或者1 //$matches 匹配结果
- preg_match_all
$subject = "abcdefabcabcabc"; $pattern = '/^abc/'; $result = preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3); //$result 返回匹配到的结果数量 //$matches 匹配结果,对结果排序使 $matches[0] 为全部模式匹配的数组,$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组,以此类推。(即$matches[0] [0]为全部模式匹配中的每一项,$matches[0] [1]为全部模式匹配中的第二项,$matches[1] [0]为匹配每一个括号中的第一项,$matches[1] [1]为匹配每一个括号中的第二项)
preg_replace
//preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) //$pattern: 要搜索的模式,可以是字符串或一个字符串数组。 //$replacement: 用于替换的字符串或字符串数组。 //$subject: 要搜索替换的目标字符串或字符串数组。 //$limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。 //$count: 可选,为替换执行的次数。 $string = 'google 123, 456'; $pattern = '/(\w+) (\d+), (\d+)/i'; $replacement = 'runoob ${2},$3'; echo preg_replace($pattern, $replacement, $string); $string = 'The quick brown fox jumped over the lazy dog.'; $patterns = array(); $patterns[0] = '/quick/'; $patterns[1] = '/brown/'; $patterns[2] = '/fox/'; $replacements = array(); $replacements[2] = 'bear'; $replacements[1] = 'black'; $replacements[0] = 'slow'; echo preg_replace($patterns, $replacements, $string);
- preg_split
//array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) //$pattern: 用于搜索的模式,字符串形式。 //$subject: 输入字符串。 //$limit: 可选,如果指定,将限制分隔得到的子串最多只有limit个,返回的最后一个 子串将包含所有剩余部分。limit值为-1, 0或null时都代表"不限制", 作为php的标准,你可以使用null跳过对flags的设置。 //$flags: 可选,可以是任何下面标记的组合(以位或运算 | 组合): //PREG_SPLIT_NO_EMPTY: 如果这个标记被设置, preg_split() 将进返回分隔后的非空部分。 //PREG_SPLIT_DELIM_CAPTURE: 如果这个标记设置了,用于分隔的模式中的括号表达式将被捕获并返回。 //PREG_SPLIT_OFFSET_CAPTURE: 如果这个标记被设置, 对于每一个出现的匹配返回时将会附加字符串偏移量. 注意:这将会改变返回数组中的每一个元素, 使其每个元素成为一个由第0 个元素为分隔后的子串,第1个元素为该子串在subject 中的偏移量组成的数组。 //使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语 $keywords = preg_split("/[\s,]+/", "hypertext language, programming"); print_r($keywords);