你好朋友我是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
等..但不明白“。”的使用。这里.. 可以任何机构解释它。如果我在其他地方错了,请纠正我
提前致谢
答案 0 :(得分:2)
.
匹配除换行符之外的任何字符。在您的情况下,它会匹配@
和除换行字符之外的空格之间的任何内容,或者它只能是'@ '
,因为您有.*?
这意味着它对于通配符{{是可选的1}}。要让.
检查包括换行符在内的所有内容,请在分隔符.
后添加s
,例如:%
s (PCRE_DOTALL)
答案 1 :(得分:1)
.
匹配换行符以外的任何内容,但只匹配一个字符。
答案 2 :(得分:0)
.
表示它会匹配任何角色。
答案 3 :(得分:0)
.
表示任何角色。一张通配符,如果你愿意的话。每当你想要匹配一个模式,在任何事情之前/之后,你会发现它很有用,但是你不想让自己麻烦那个东西。
在上面的正则表达式中,你匹配@
,然后匹配任意数量的字符,直到你到达空格。期间允许您不关心您的模式是@[
还是@lorem76-ipsum
。它将匹配。