什么“。”正则表示正则表达式

时间:2013-03-24 04:44:44

标签: php regex preg-match

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

我尝试使用此代码在'@'和'space'之间找到文本

<?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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

.表示它会匹配任何角色。

答案 3 :(得分:0)

.表示任何角色。一张通配符,如果你愿意的话。每当你想要匹配一个模式,在任何事情之前/之后,你会发现它很有用,但是你不想让自己麻烦那个东西。

在上面的正则表达式中,你匹配@,然后匹配任意数量的字符,直到你到达空格。期间允许您不关心您的模式是@[还是@lorem76-ipsum。它将匹配。