3v4l.org

run code in 300+ PHP versions simultaneously
<?php $inputs = [ 'd2.r1.4#100.37#1.9#2.3#1', 'd2.r1.4#100.37#1.9#2.38#1.8#22', 'd2.r1.4#100.37#1.9#2.3#1.12#2.30#2', ]; $pattern = '/^d[1-7]\.r[1-6](?:\.(?:3[0-7]|[12]\d|[1-9])#\d+)*$/i'; foreach ($inputs as $input) { echo "\n{$input}: "; var_export((bool)preg_match($pattern, $input)); }
Output for 7.1.25 - 7.1.32, 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.29, 8.2.0 - 8.2.20, 8.3.0 - 8.3.8
d2.r1.4#100.37#1.9#2.3#1: true d2.r1.4#100.37#1.9#2.38#1.8#22: false d2.r1.4#100.37#1.9#2.3#1.12#2.30#2: true

preferences:
197.49 ms | 403 KiB | 179 Q