У меня есть строки версии, например, >=1.0.0.1
Строка также может быть <2.0
или <0.1-alpha
. Как я могу разобрать строку, чтобы отделить значения, такие как ">="
- "1.0.0.1"
или "<"
- "0.1-alpha
"` последовательно?
Вот то, что у меня есть, и это работает, но я нахожу это очень уродливо / грязно. Любые советы по его очистке будут с благодарностью.
Я использую Laravel (приветствуются помощники строк). Это также должно работать для других версий примеров строк. всегда следует comparison
, затем version
:
>=1.0.0
<3.0
>0.01-alpha
... et c
public function test_version_compare()
{
$version = ">=4.0.0";
$resolved_comparison = null;
$resolved_version = null;
$version_array = str_split($version);
foreach ($version_array as $key => $array) {
if (is_numeric($array)) {
$version_pos = $key;
break;
}
}
foreach ($version_array as $key => $array) {
if ($version_pos > $key) {
$resolved_comparison = $resolved_comparison.$array;
} else {
$resolved_version = $resolved_version.$array;
}
}
$this->assertEquals('>=', $resolved_comparison);
$this->assertEquals('4.0.0', $resolved_version);
}