$re = '/(?:[\r\n]+((\d{2}).(\d{2}).(\d{4}) (\d{2}):(\d{2}):(\d{2})))?;([;]{1})/m';
$str = '23.05.2022 05:59:00;1;;;;;;;;;
23.05.2022 05:59:00;;2;;;;;;;;
23.05.2022 05:59:00;;;3;;;;;;;
23.05.2022 05:59:00;;;;4;;;;;;
23.05.2022 05:59:00;;;;;5;;;;;
23.05.2022 05:59:00;;;;;;6;;;;
23.05.2022 05:59:00;;;;;;;7;;;
23.05.2022 05:59:00;;;;;;;;8;;
23.05.2022 05:59:00;;;;;;;;;9;
23.05.2022 05:59:00;;;;;;;;;;10
23.05.2022 06:59:00;1;;;;;;;;;
23.05.2022 06:59:00;;2;;;;;;;;
23.05.2022 06:59:00;;;3;;;;;;;
23.05.2022 06:59:00;;;;4;;;;;;
23.05.2022 06:59:00;;;;;5;;;;;
23.05.2022 06:59:00;;;;;;6;;;;
23.05.2022 06:59:00;;;;;;;7;;;
23.05.2022 06:59:00;;;;;;;;8;;
23.05.2022 06:59:00;;;;;;;;;9;
23.05.2022 06:59:00;;;;;;;;;;10';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php