FbmRegExExtract

Diese Funktion gehört zur Unit StrUtils und steht global zur Verfügung. Der Funktionstyp ist Funktion. Der Rückgabetyp ist vom Typ string.
Die Funktion verlangt folgende Parameter:
Parameter
Typ
Beschreibung
Value string Die Zeichenkette, welche gegen den regulären Ausdruck geprüft werden soll.
Expression string Der reguläre Ausdruck, welcher überprüft werden soll.
Substitution string Mit dieser "Maske" wird die Ersetzung durchgeführt.
Fallback string Sollte die "Expression" nicht gefunden werden, wird als Rückgabe dieser Wert verwendet.
Prüft, ob ein regulärer Ausdruck in einer Zeichenkette gefunden werden kann und gibt das erste Vorkommen mithilfe der "Maske" (Substitution) zurück. Sollte der reguläre Ausdruck keinen Treffer erzielen, wird stattdessen der Fallback verwendet.
Quelltext-Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
FbmRegExExtract(
  'Meine Kundennummer: K-123456789-1',
  '(K-[0-9]{9}-[0-9])',
  '$1',
  'Nicht gefunden'
); // 'K-123456789-1';

FbmRegExExtract(
  'Meine Vertragsnummer: V-123456789-1',
  '(K-[0-9]{9}-[0-9])',
  '$1',
  'Nicht gefunden'
); // 'Nicht gefunden';
eBay-Referenz extrahieren:
1
2
3
4
5
6
7
8
9
10
11
12
try
  if Item.UserFields.Exists('eBay_Reference') then
  begin
    Item.UserFields.ItemsByName['eBay_Reference'].DataTypeValue := FbmRegExExtract(
      Item.TextViewData,
      '(\[#[0-9a-z-]{14}#\]_)?\[#[0-9a-z-]{32}#\]',
      '$0',
      'Ohne Referenz'
    );
  end;
except
end;
E-Mail Adresse aus Nachrichtentext extrahieren (z.B. bei Briefen/Faxen):
1
2
3
4
5
6
7
8
9
10
11
12
try
  if Item.UserFields.Exists('Email') then
  begin
    Item.UserFields.ItemsByName['Email'].DataTypeValue := FbmRegExExtract(
      Item.TextViewData,
      '(mailto:|^|[\s]+)([A-Za-z0-9\.!#$%&''*+/=?^`´\{\}~_-]+@[^\x00-\x20<>&\.]+(\.[^\x00-\x20<>&\.]+)+)',
      '$2',
      ''
    );
  end;
except
end;