繁体   English   中英

php sscanf和逗号角色

[英]php sscanf and comma character

我在PHP sscanf函数和逗号字符方面遇到了麻烦。 我需要提取4个值,如下工作示例所示:

<?php
$format = '%s %s, blabla %ih blabla %ih';
$input = 'blabla 08-06-2016 blabla 14h blabla 17h';
$result = sscanf($input, $format);
var_dump($result);

输出:

array (size=4)
  0 => string 'blabla' (length=10)
  1 => string '08-06-2016' (length=10)
  2 => int 14
  3 => int 17

但我的真实例子涉及一个逗号字符,我不能让它工作:

<?php
$format = '%s %s, blabla %ih blabla %ih';
$input = 'blabla 08-06-2016, blabla 14h blabla 17h';
$result = sscanf($input, $format);
var_dump($result);

输出:

array (size=4)
  0 => string 'blabla' (length=10)
  1 => string '08-06-2016,' (length=11)
  2 => null
  3 => null

这很简单,但我找不到解决方案......逗号是一个保留字吗?

更新1:

对不起,我忘了提到这个:我希望将$ format上存储的字符串模板用作sprintf的模板:如果我修改它包括regexp,它将不会与sprintf兼容,我错了吗? 我已经认为相同的字符串模板可以用于两个方向:包装和展开:非常有用!...可能是不可能使用逗号?

谢谢 :)

这将解决您的问题, 使用scanf读取逗号分隔的输入

$format = '%s %20[^,], blabla %ih blabla %ih'; 或者其他一些最大长度,20是任意的,因为我的应用程序中没有上下文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM