php preg_match()正则表达式的用法

利用 preg_match(),我们可以完成字符串的规则匹配。如果找到一个匹配,preg_match() 函数返回 1,否则返回 0。还有一个可选的第三参数可以让你把匹配的部分存在一个数组中。在验证数据时这个功能可以变得非常有用。
<?php // 模式定界符后面的 “i” 表示不区分大小写字母的搜索 if (preg_match (“/php/i”, “PHP is the web scripting language of choice.”)) { print “A match was found.”; } else { print “A match was not found.”; } ?>

这个例子将验证出此 Email 地址为正确格式。现在让我们来看看这段正则表达式所代表的各种规则。

获取Google首页title
比如说要获取google首页的title内容,代码如下:
<?php <br ?> $str = file_get_contents(‘http://www.google.com’);
preg_match(‘/(.*)/’, $str, $arr);
echo $arr[1];
?>

从网址获取域名:
<?php preg_match(“/^(http://)?([^/]+)/i”, “http://www.111cn.net/index.html”, $matches); $host = $matches[2]; // 从主机名中取得后面两段 preg_match(“/[^./]+.[^./]+$/”, $host, $matches); echo “domain name is: {$matches[0]}n”; ?>

preg_match($pattern,$string,$matcher)其中$pattern对应的就是/^(http://)?([^/]+)/i,$string 是http://www.php.net/index.html,$match是匹配到的结果。

如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
$matches[0] 将包含与整个模式匹配的文本。咱们用pring_r打印出来第一个$matches:
Array (
[0] => http://www.111cn.net
[1] => http://
[2] => www.111cn.net )

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

Facebooktwittergoogle_pluslinkedinmail

Need a translation service?

Please enter your personal details and we will contact you shortly

Words translated by CCJK

146,096,379

Our Client Satisfaction

Rating for previous quarterr

4.00

Over 95% of our clients recommend our language services to others

Copyright © CCJK Technologies Co., Ltd. 2000-2017. All rights reserved.
TOP