下面的代码需要在$input
,如:"a banana is a fruit"
sscanf忽略空格?
$t = sscanf($input,"a %s is a %s",$child,$parent);
echo $t.",".$child.",".$parent;
它输出:2,banana,fruit
,这是完美的!
但是,如果$input = "a cow is an animal"
我们得到输出:2,cow,n
。这并不理想。
理想情况下,对于$input = "a cow is an animal"
它将返回1,cow,
,我将使用单独的格式化字符串:"a %s is an %s"
该输入将返回2,cow,animal
。
所以:为什么第二个a
在"a %s is a %s"
之后的空间不会发生这个问题呢?有没有办法明确声明一个空间必须发生在a
之后才能找到正确的匹配?
希望这是有道理的。任何帮助感谢!
编辑:这是实际的代码:
$teachArray = array("a %s is a %s","an %s is a %s","a %s is an %s","an %s is an %s");
$i=0;
$t = -1;
while((t <= 2) && (i < count($teachArray))) {
$t = sscanf($input,$teachArray[i],$child,$parent);
$i++;
}
所以它不断循环,直到它找到一个匹配的句子结构,或者它运行的一句模板(存储在$ teachArray)。
哇。目睹了它的力量,我现在要学习一些正则表达式。谢谢! – JoeRocc