3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = explode(PHP_EOL, '123 – 45 – 6789 111000025 021000021 031902766 067014822 122000247 123456789 987654321 012345678901 876543210987 112233445566 123456789 123-456789 123456789 123 45 6789 123-45-6789 123-45-6789 123 – 45 – 6789 123.45.6789 123_45_6789 123 456 789 123-456-789 123 – 456 – 789 123.456.789 123_456_789 1234 56 789 1234-56-789 1234 – 56 – 789 1234.56.789 1234_56_789 12 345 6789 12-345-6789 12 – 345 – 6789 12.345.6789 12_345_6789'); var_export( preg_replace_callback( '/(?!<[-–_\s.\d]) (?= (?: (?:[-–_\s.]*\d){8,9} | (?:[-–_\s.]*\d){12} ) (?![-–_\s.\d]) ) [-–_ .\d]+ (?=(?:[-–_ .\d]*\d){4})/x', fn($m) => str_repeat('*', strlen($m[0])), $array ) );

preferences:
79.56 ms | 1236 KiB | 5 Q