Nach Deinen Ergänzungern verbesserte Lösung
bearbeitet von ursus contionabundo> denn z.b hier müßte der String At vero eos et auch die Zahl 10 enthalten, weil sie zum String gehört.
Das macht es sogar einfacher:
~~~php
<?php
$pattern = '/^.*AB[A-Z0-9][0-9]+ (.*) ([0-9]+) (.*) ([0-9.,]*)$/';
$rows = file('/tmp/data.txt');
foreach ( $rows as $row ) {
$row = trim( $row );
preg_match( $pattern, $row, $arr );
if ( $arr ) {
print_r( $arr );
} else {
echo "Nicht passend: $row" . PHP_EOL;
}
}
~~~
Nach Deinen Ergänzungern verbesserte Lösung
bearbeitet von ursus contionabundo> denn z.b hier müßte der String At vero eos et auch die Zahl 10 enthalten, weil sie zum String gehört.
Das macht es sogar einfacher:
~~~php
<?php
$pattern = '^.*AB[A-Z0-9][0-9]+ (.*) ([0-9]+) (.*) ([0-9.,]*)$';
$pattern = '/' . str_replace( '/', '\\/', $pattern ) . '/';
$rows = file('/tmp/data.txt');
foreach ( $rows as $row ) {
$row = trim( $row );
preg_match( $pattern, $row, $arr );
if ( $arr ) {
print_r( $arr );
} else {
echo "Nicht passend: $row" . PHP_EOL;
}
}
~~~