\"preg_\" 为前缀的正则表达式常用操作函数——php

来源:互联网 发布:javascript实现trie树 编辑:程序博客网 时间:2024/05/21 18:39

preg_match():

原型:int pre_match(string $pattern,string $subject[,array &$matches[, int $flags = 0 [, int $offset = 0 ]]]) 

搜索subject与pattern给定的正则表达式的一个匹配。

如果提供了matches,则将被搜索的结果填充。

如果提供了matches,则 matches被搜索的结果所填充

<?php 

//  URL 中取得主机名, 模式定界符后面的 "i" 表示不区分大小写字母的搜索 

// 定义一个正则表达式的模式字符串 

$pattern = "/^(http:\/\/)?([^\/]+)/i"; 

if(preg_match($pattern, "http://www.php.net/index.html", $matches)) { 

     // $matches[2]中的内容对应的是模式中第二个圆括号中的子模式所匹配的内容 

     $host = $matches[2]; 

     echo "URL中的主机名是: $host"; //本例的输出结果将是:URL中的主机名是www.php.net 

else { 

     echo "没有匹配的串"; 

?> 

preg_replace():执行一个正则表达式的搜索与替换

原型:mixed preg_replace( mixed $pattern,mixed $replacement,mixed subject[,int $limit=-1[,int &$count]])

搜索subject中匹配pattern的部分,以replacement部分替换。

如果指定了limit,则仅替换limit个匹配项,如果省略limit或者其值为-1,则所有的匹配项都会被替换

count 如果指定, 将会被填充为完成的替换次数. 

返回值

如果subject是一个数组, preg_replace()返回一个数组, 其他情况下返回一个字符串.

如果subject是一个数组,preg_replace()返回一个数组,其他情况下返回一个字符串

如果匹配被查找到, 替换后的subject被返回, 其他情况下 返回没有改变的subject. 如果发生错误, 返回NULL .  

如果匹配被查找到,替换后的subject被返回,其他情况下返回没有改变的subject,如果发生错误,返回null

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 

如果设定了本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其在subject中的偏移量。