#php
Вопрос:
Он может различать десятичные и» -»
$str = "1995-25";
$pat = sscanf( $str , "%d-%d);
print_r($pat);
Он также может различать первую » — » и следующую строку
$str = "-of";
$pattern = sscanf ( $str , "-%s" );
print_r ( $pattern );
но когда дело доходит до обозначения » — «в середине строки
, оно предполагает» — » как строку
, и, что более удивительно, первый %s считывает его до последнего
, даже рассматривая 4 как строку
$str = '-of-america-4';
$pat = sscanf ($str , "-%s-%s-%d");
print_r($pat);
// outputs [0] => of-america-4
Комментарии:
1.
-
это струна. Добавьте некоторые ожидаемые результаты
Ответ №1:
%s
это жадное совпадение, вы могли бы использовать %[^-]
<?php
$str = '-of-america-4';
$pat = sscanf($str , '-%[^-]-%[^-]-%d');
print_r($pat);
Array
(
[0] => of
[1] => america
[2] => 4
)
Комментарии:
1. спасибо, что сработало, но не могли бы вы подробнее рассказать о %[^-] ? Я никогда раньше не видел этого в программировании
2. это не документировано PHP, если вы используете систему unix(macOS, linux), вы можете прочитать более подробную информацию по
man sscanf