在 sscanf() 中,%s 不会在点处停止匹配

问题描述 投票:0回答:3

这不起作用:

list($value) = sscanf('foo.bar','%s.bar');
echo $value; //foo.bar

虽然这样做:

list($value) = sscanf('foo bar','%s bar');
echo $value; //foo

任何建议都非常感激。 谢谢。

php scanf
3个回答
4
投票

您可以使用基本(否定)字符类代替

s
,如下所示:

sscanf('foo.bar','%[^.].bar', $value);
echo $value; //foo

3
投票

您可以使用explode代替sscanf()来完成您想要做的事情。

$str = "foo.bar";
list($value1,$value2) = explode(".",$str);
print $value1;

2
投票

我认为这是设计使然的。老实说,在这里使用

preg_match
是微不足道的。

© www.soinside.com 2019 - 2024. All rights reserved.