PHP preg_match函数

preg_match

(PHP 4, PHP 5)

preg_match — 进行正则表达式匹配

说明

int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )

subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。

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

flags 可以是下列标记:

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

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

Tip

如果只想查看一个字符串是否包含在另一个字符串中,不要用 preg_match()。可以用 strpos()strstr() 替代,要快得多。

Example#1 在文本中搜索“php”

<?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.";
}
?>

Example#2 搜索单词“web”

<?php
/* 模式中的 /b 表示单词的边界,因此只有独立的 "web" 单词会被匹配,
 * 而不会匹配例如 "webbing" 或 "cobweb" 中的一部分 */
if (preg_match ("//bweb/b/i""PHP is the web scripting language of choice.")) {
    print 
"A match was found.";
} else {
    print 
"A match was not found.";
}

if (
preg_match ("//bweb/b/i""PHP is the website scripting language of choice.")) {
    print 
"A match was found.";
} else {
    print 
"A match was not found.";
}
?>

Example#3 从 URL 中取出域名

<?php
// 从 URL 中取得主机名
preg_match("/^(http:)?([^//]+)/i",
    
"http://www.php.net/index.html"$matches);
$host $matches[2];

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

本例将输出:

    
    
domain name is: php.net
 
摘自:http://www.php.net/manual/zh/function.preg-match.php
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`preg_match()` 是 PHP 中一个用于正则表达式匹配的函数。它的作用是在一个字符串中搜索匹配指定正则表达式的第一个位置,如果匹配成功则返回 `1`,否则返回 `0`。 `preg_match()` 函数的基本用法如下: ```php preg_match($pattern, $subject, $matches); ``` 其中,`$pattern` 是一个正则表达式,用于匹配 `$subject` 中的内容,`$matches` 是一个可选的数组,用于存储匹配到的结果。 `preg_match()` 函数的参数说明: - `$pattern`:一个正则表达式,用于匹配 `$subject` 中的内容。 - `$subject`:要被匹配的字符串。 - `$matches`:一个可选的数组,用于存储匹配到的结果。如果 `$matches` 被提供,那么它会被填充为匹配到的子模式的结果数组。 下面是一个简单的例子,用于匹配一个字符串中的数字: ```php $str = 'The number is 123.'; $pattern = '/\d+/'; preg_match($pattern, $str, $matches); echo $matches[0]; // 输出:123 ``` 在上面的例子中,`$pattern` 是一个正则表达式,用于匹配字符串中的数字。`$str` 是要被匹配的字符串,`$matches` 是一个数组,用于存储匹配到的结果。`preg_match()` 函数返回 `1`,表示匹配成功。最后,我们输出了 `$matches` 数组中的第一个元素,即匹配到的数字。 需要注意的是,`preg_match()` 函数只会匹配到第一个符合条件的结果,如果要匹配所有的结果,可以使用 `preg_match_all()` 函数。同时,正则表达式的语法非常复杂,需要学习和练习才能熟练掌握。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值