-3

你好朋友我是 php 模式匹配的新手。

我尝试使用此代码在“@”和“空格”之间查找文本

<?php
    $pattern = "%@(.*?)\s%";
    $string = "this is @test string @match ";
    preg_match_all($pattern, $string, $match);
    echo "<pre>";
    print_r($match);
    echo "</pre>";
    ?>

它工作正常,没有错误......我的问题是什么是“。” 这意味着我知道其他符号的含义,例如

% is terminaor
( start of substring
) end of substring
* 0 or more match

等等..但不明白“。”的用法 在这里..任何人都可以解释一下。如果我在其他任何地方错了,请纠正我

提前致谢

4

4 回答 4

2

.匹配除换行符以外的任何字符。在您的情况下,它将匹配@除换行符之外的任何内容和空格,或者它可能只是'@ '因为您有 .*?这意味着它对于通配符是可选的.。要.检查包括换行符在内的所有内容,s请在分隔符之后添加,%例如:...%s s (PCRE_DOTALL)

于 2013-03-24T04:50:48.510 回答
1

.匹配除换行符以外的任何内容,但仅匹配一个字符。

于 2013-03-24T04:45:36.820 回答
0

.意味着它将匹配任何字符。

于 2013-03-24T04:46:33.997 回答
0

.表示任何字符。一个通配符,如果你愿意的话。你会发现它很有用,只要你想匹配一个模式,前面/后面跟着任何东西,但你不想麻烦自己那东西是什么。

在上面的正则表达式中,您要匹配@,然后是任意数量的字符,直到找到空格。句号让您不必关心您的模式是@[还是@lorem76-ipsum。它将被匹配。

于 2013-03-24T04:51:36.160 回答