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
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';
'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
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;
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
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;
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;
Siehe auch: