TBeCBRegExpr
Klasse zum Suchen (und Ersetzen) in einem Text mit Hilfe von regulären Ausdrücken.
Hinweis:
Allgemeine Dokumentation zu regulären Ausdrücken z.B. unter http://www.perl.com/doc/manual/html/pod/perlre.html
Eigenschaften:
Allgemeine-Eigenschaften
|
SearchText:C |
Beliebige Zeichenkette. |
|
SearchExpression:C |
Regulärer Suchausdruck. |
|
ReplaceText:C |
Zeichenkette, mit der bei einem Treffer ersetzt werden soll. |
|
UseSingleLine:L |
Behandle den Zielstring als einzelne Zeile, default = false. |
|
UseMultiLine:L |
Behandle den Zielstring als mehrzeiligen String, default = true. |
|
UseCaseSensitive:L |
Groß- und Kleinschreibung beachten, default = false. |
|
Matches:A |
Array mit Suchtreffer (nur lesend) |
Aktive-Eigenschaften (Methoden)
|
ExecSearch |
Suche ausführen (Rückgabe true/false, Eigenschaft Matches wird gefüllt) |
|
ExecSeachNext |
Weitersuchen (Rückgabe true/false, Eigenschaft Matches wird gefüllt) |
|
Replace |
Suchen und Ersetzen (unabhängig von ExecSearch/ExecSearchNext) |
Beispiel
|oObj|
startseq,
oObj := CreateObject('TBeCBRegExpr'),
//------ Suche nach allen EMail Adressen
oObj.SearchText := 'Lorem info@dontenwill.de ipsum dolor sit amet, consetetur' + crlf,
oObj.SearchText += 'sadipscing elitr, abc@dontenwill.de tempor invidunt ut',
oObj.SearchExpression := '[\w-]+@([\w-]+\.)+[\w-]+',
// beliebige Anzahl alphanum. Zeichen (inkl. -_) +
// @ +
// beliebige Anzahl alphanum. Zeichen mit nachfolgendem '.' +
// beliebige Anzahl alphanum. Zeichen
if oObj.ExecSearch then
writeln(oObj.Matches[1]),
while oObj.ExecSearchNext do
writeln(oObj.Matches[1]),
end,
endif,
oObj.SearchText := 'ArtNr: Y-98498' + crlf +
'Seriennummer: SN1234566' + crlf +
'ArtNr: D-12412' + crlf +
'Seriennummer: SN1234567' + crlf +
'ArtNr: X-25792' + crlf +
'Seriennummer: SN1234568' + crlf,
// Suchmuster:
// X oder Y oder Z gefolgt von '-' gefolgt von genau 5 Ziffern (0-9)
oObj.SearchExpression := '[X-Z]-[0-9]{5}',
oObj.ReplaceText := 'A-11111',
writeln(oObj.Replace),
always
DestroyObject(oObj),
stopseq,