php preg_match

WBOY
WBOYOriginal
2016-06-20 12:31:061838browse

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


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

 如果提供了 matches,则其会被搜索的结果所填充。 $matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
菜鸟求问,这个函数不是只能匹配到最多一个符合的目标吗,matchs【0】和matchs【1】分别包含了啥,看不懂这句话


回复讨论(解决方案)

$s = 'func(123,456,789)';preg_match('/,?(\d+)/', $s, $m);print_r($m);preg_match_all('/,?(\d+)/', $s, $m);print_r($m);
Array(    [0] => 123    [1] => 123)Array(    [0] => Array        (            [0] => 123            [1] => ,456            [2] => ,789        )    [1] => Array        (            [0] => 123            [1] => 456            [2] => 789        ))

看不懂就动手做做

计算机科学是实验型科学,只动眼不动手 是不行的

不明白就打印出来出来看看。

$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
这里说的第一个括号中的子模式 指的是\d+ 吗 ,是的话就看明白了。抱歉  我不是不想自己打,我在百度搜到输出结果了,但是有点困惑

(  子模式开始 
)  子模式结束 

手册是一定要看的!

匹配多个使用 preg_match_all

$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

$matches[0]  会把边界的也保存
$matches[1] 只保留正则匹配的

例如

$content = '<img  src="http://www.csdn.net/abc.jpg" alt="php preg_match" >';preg_match_all('/<img .*?src=\"(http:\/\/.+\.(jpg|jpeg|gif|bmp|png))\" alt="php preg_match" >/i', $content, $matches); print_r($matches[0]);print_r($matches[1]);

Array
(
    [0] => php preg_match
)

Array
(
    [0] => http://www.csdn.net/abc.jpg
)

$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

$matches[0]  会把边界的也保存
$matches[1] 只保留正则匹配的

例如

$content = '<img  src="http://www.csdn.net/abc.jpg" alt="php preg_match" >';preg_match_all('/<img .*?src=\"(http:\/\/.+\.(jpg|jpeg|gif|bmp|png))\" alt="php preg_match" >/i', $content, $matches); print_r($matches[0]);print_r($matches[1]);

Array
(
    [0] => php preg_match
)

Array
(
    [0] => http://www.csdn.net/abc.jpg
)


 第一个括号中的模式   我懂了。match【1】 输出的刚好是括号里面对应的模式

以后碰到同类问题都可以先打印一下看看

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn