<?php
$pattern='(?:^(?:(?<a>(?:(?:[0-9]|[1-9][0-9]|1[0-7][0-9]))|(?:(?:[0-9]|[1-9][0-9]|1[0-7][0-9])\.\d)|180)!(?<b>(?:(?:[0-9]|[1-9][0-9]|[1-3][0-5][0-9]))|(?:(?:[0-9]|[1-9][0-9]|[1-3][0-5][0-9])\.\d)|360)!(?<c>-?(?:(?:(?:[0-8]|[1-8][0-9]))|(?:(?:[0-9]|[1-8][0-9])\.\d)|90)))$)';
$subject='123!360!-12.3';
preg_match('/' . $pattern . '/', $subject, $array);
if(!empty($array)) var_dump($array['a'], $array['b'], $array['c']);
- Output for 7.0.0 - 7.0.23, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- string(3) "123"
string(3) "360"
string(5) "-12.3"
preferences:
81.51 ms | 408 KiB | 5 Q