[英]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.