3v4l.org

run code in 500+ PHP versions simultaneously
<?php $values = [ 'not-valid-holidays', '$-holidays', '2009--holidays', '2009-A-holidays', '20091-holidays', '2009-999-holidays', 'test/99-holidays', 'test/99/test-holidays', '190-20-holidays', '0-0-holidays', '99-0-holidays', '0-99-holidays', '9999-99-holidays', '2004-holidays', ]; $patterns = [ '.+', '[-\w]+', '[-\d]+', '\d{1,4}(-\d{1,2})?' ]; foreach ($patterns as $pattern) { echo 'Pattern: ' . $pattern . \PHP_EOL; foreach ($values as $string) { echo $string . ': ' . (preg_match('/^' . $pattern. '-holidays$/', $string) ? '✓' : 'X') . \PHP_EOL; } echo \PHP_EOL; }
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.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
Pattern: .+ not-valid-holidays: ✓ $-holidays: ✓ 2009--holidays: ✓ 2009-A-holidays: ✓ 20091-holidays: ✓ 2009-999-holidays: ✓ test/99-holidays: ✓ test/99/test-holidays: ✓ 190-20-holidays: ✓ 0-0-holidays: ✓ 99-0-holidays: ✓ 0-99-holidays: ✓ 9999-99-holidays: ✓ 2004-holidays: ✓ Pattern: [-\w]+ not-valid-holidays: ✓ $-holidays: X 2009--holidays: ✓ 2009-A-holidays: ✓ 20091-holidays: ✓ 2009-999-holidays: ✓ test/99-holidays: X test/99/test-holidays: X 190-20-holidays: ✓ 0-0-holidays: ✓ 99-0-holidays: ✓ 0-99-holidays: ✓ 9999-99-holidays: ✓ 2004-holidays: ✓ Pattern: [-\d]+ not-valid-holidays: X $-holidays: X 2009--holidays: ✓ 2009-A-holidays: X 20091-holidays: ✓ 2009-999-holidays: ✓ test/99-holidays: X test/99/test-holidays: X 190-20-holidays: ✓ 0-0-holidays: ✓ 99-0-holidays: ✓ 0-99-holidays: ✓ 9999-99-holidays: ✓ 2004-holidays: ✓ Pattern: \d{1,4}(-\d{1,2})? not-valid-holidays: X $-holidays: X 2009--holidays: X 2009-A-holidays: X 20091-holidays: X 2009-999-holidays: X test/99-holidays: X test/99/test-holidays: X 190-20-holidays: ✓ 0-0-holidays: ✓ 99-0-holidays: ✓ 0-99-holidays: ✓ 9999-99-holidays: ✓ 2004-holidays: ✓

preferences:
129.57 ms | 1739 KiB | 4 Q