Hallo,
Ja, das kann sein. Jedoch habe ich das Problem, dass ich nur den RegEx Ausdruck an sich eingeben kann. Somit fallen also Angaben wie If usw. leider raus.
Dann wirds schwieriger.
Zunächst mal ne Kleinigkeit, dass Dein Ausdruck leichter zu lesen wird: ^\d{1,3} matched Dir 1-3 Ziffern; ((M|K)B) matched MB od. KB.
Der komplette Ausdruck wäre dann ^\d{1,3}\s((M|K)B)
Für das eigentliche Problem brauchst Du dann aber keine Alternative (|) sondern einen konditionalen Ausdruck und eine Assertion, ich glaube, so könnte es funktionieren:
(?(?=(.+))(^\d{1,3}\s((M|K)B))|())
Zur Erklärung:
(? legt den konditionalen Ausdruck fest, es wir gefolgt von der Bedingung: (?=(.+)) ist eine vorwärtsblickende Assertion (wenn ein oder mehrere beliebige Zeichen kommen, dann...)
nun folgen die beiden Alternativen wenn die Bedingung erfüllt ist: ^\d{1,3}\s((M|K)B) wenn nicht einfach nur ().
Greets
Michi