欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

preg_match

shiping1 的头像

<?php

preg_match()返回 pattern 的匹配次数。 它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后 将会停止搜索$continue_shoppingUrl = preg_match("/<a href=\"(.*)\">/",$form['continue_shopping']['#value'],$arr);  
上面是取出href里面的url



//preg_match() 返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,
//因为 preg_match() 在第一次匹配之后将停止搜索。
//preg_match_all() 则相反,会一直搜索到 subject 的结尾处。
//如果出错 preg_match() 返回 FALSE。
//int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )

//如果提供了 matches ,则其会被搜索的结果所填充。$matches[0]
//将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,

$str = "aa<img  dddd >sdfsdfsdf<img src='ddd' >";
preg_match("/<(img.*?)>/si",$str,$arr);
//preg_match_all($pattern, $subject, $matches)
var_dump($arr);


$str = "aa<img  dddd >sdfsdfsdf<img src='ddd' >";
preg_match("/<img.*?>/si",$str,$arr);
var_dump($arr);




<?php
//preg_match() 返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,
//因为 preg_match() 在第一次匹配之后将停止搜索。
//preg_match_all() 则相反,会一直搜索到 subject 的结尾处。
//如果出错 preg_match() 返回 FALSE。
//int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )

//如果提供了 matches ,则其会被搜索的结果所填充。$matches[0]
//将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,

//这里取 img 的 src
$str = 'aa<img alt="aa" src="abcdefg" dddd  kkk="mmm"/>sdfsdfsdf<img alt="aa" src="hijklmn" dddd  kkk="mmm"/>';
//preg_match("|<img (.*)src=([\'|\"])([^>]+)([\'|\"])(.*) />|isU",$str,$arr);
preg_match('|<img(.*)src=["\']([^>]+)["\'](.*)\/?>|isU',$str,$arr);


var_dump($arr[2]);exit;
//这是OK






//|<img (.*)src=[\'|"]([^>]+)[\'|"](.*) />|isU
//preg_match_all($pattern, $subject, $matches)



.



<?php


//如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,
//$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

//preg_match() 返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,
//因为 preg_match() 在第一次匹配之后将停止搜索。
//preg_match_all() 则相反,会一直搜索到 subject 的结尾处。
//如果出错 preg_match() 返回 FALSE。

preg_match("/^(http:\/\/)?([^\/]+)/i","http://www.php.net/index.html http://www.baidu.com", $matches);
$host = $matches[2];

var_dump($matches);
echo "<br>";
// 从主机名中取得后面两段
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";

//如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,
//$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

//咱们用pring_r打印出来第一个$matches:
//Array ( [0] => http://www.php.net [1] => http:// [2] => www.php.net )
//这回明白了吧。。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本。在正则中,()代表模式:匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。
//就是说数组中下标为1的值就是正则中/^(http:\/\/)?([^\/]+)/i第一个()里的值!数组下标2的值以此类推



<?php

//如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,
//$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

//preg_match() 返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,
//因为 preg_match() 在第一次匹配之后将停止搜索。
//preg_match_all() 则相反,会一直搜索到 subject 的结尾处。
//如果出错 preg_match() 返回 FALSE。
//nt preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )


$patterEmail  = "/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2,4}|museum|travel)$/i";

if (!(preg_match($patterEmail,'aa@gg.com')))
{
    echo "email格式错误";
}
?>

普通分类: