您的位置:首页 > 编程语言 > PHP开发

php preg_match方法

2015-03-30 17:36 1371 查看
preg_match方法利用正则表达式,处理一个字符串,将所得结果保存在array对象中,array[0]保存匹配整个正测表达式的串;array[1]保存第一个由小括号括起来的字串,后面依次类推。

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )


如下代码:

<?php
$pattern = "/abc (li|wang).../";
$arr = array();
$ret = preg_match($pattern, "xx abc li find......", $arr);
echo "ret=$ret\n";
var_dump($arr);


运行得到结果如下:

ret=1
array(2) {
[0] =>
string(9) "abc li fi"
[1] =>
string(2) "li"
}


如上,我们得到了match整个表达式的"abc li fi"和括号里"li";如果我们还想得到每一个match的对象在原串中的位置,则可以使用PREG_OFFSET_CAPTURE.

<?php
$pattern = "/abc (li|wang).../";
$arr = array();
$ret = preg_match($pattern, "xx abc li find......", $arr, PREG_OFFSET_CAPTURE);
echo "ret=$ret\n";
var_dump($arr);


运行,得到

ret=1
array(2) {
[0] =>
array(2) {
[0] =>
string(9) "abc li fi"
[1] =>
int(3)
}
[1] =>
array(2) {
[0] =>
string(2) "li"
[1] =>
int(7)
}
}


这样,array[i]下的元素变成了array对象,包含2个元素,第二个就是该pattern在原串中的位置。

当然preg_match还可以传offset参数,表示从原串哪个位置开始执行匹配。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: