Domino 9 und frühere Versionen > ND6: Entwicklung

Regular Expressions auf Richtext-Items

(1/2) > >>

TMC:
Regular Expressions sind ja eigentlich eine tolle Sache, auch wenn die Expressions für Außenstehende eher wie Voodoo aussehen  ;D

Aktuell habe ich 2 Datenbanken hier, wo ich mit RE gerne die Richtext-Items bearbeiten würde.
Hier und da Änderungen, kommt immer wieder vor.

Am besten:
Die Expressions in ein (Profil-)dokument speichern, und dann z.B. per Agent entsprechende Dokumente bearbeiten.

Hat das von Euch schon mal wer gemacht? LotusScript kennt ja RE nicht, außerdem ist das nicht wirklich per LS umsetzbar, außer man investiert sehr viel Zeit.

Ich will da einfach ein paar REs durchlaufen lassen, z.B. was "kleines" wie hier:

--- Code: ---^(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.[a-zA-Z]{2,4})(\:[0-9]+)?(/[^/][a-zA-Z0-9\.\,\?\'\\/\+&%\$#\=~_\-@]*)*$

--- Ende Code ---

Nachdem zur Laufzeit eher nicht geht, möchte ich das über Agenten machen.

Danke für Tipps.

Matthias

TMC:
Habe nochmal im Forum gesucht, u.a. hier eine Aussage von Bernhard:


--- Zitat von: koehlerbv am 20.04.05 - 17:11:14 ---Regular expressions lassen sich mit einmaligem Aufwand ja einfach auch mit LS nachbauen. Inclusive aller eigener Freiheiten  ;D

--- Ende Zitat ---

Also RE doch einfach in LotusScript nachbaubar? Bin aufgeschlossen und für Tipps dankbar.
Aber mir fehlt da komplett der Ansatz, wie ich das anstellen sollte.

koehlerbv:
Matthias, dies läuft ja vorrangig auf einen Parserbau hinaus. Einen Ansatz zu RE gibt es ja mit @Matches sogar in Notes (für das ein oder andere Problem kann das sogar via Evaluate die ein oder andere Eigenprogrammierung ersparen).

Da mit LS Nachbau angesagt ist, ist m.E. immer vorab zu prüfen, ob und wenn ja wie man die Mächtigkeit einer RegEx in Bezug auf die konkrete Aufgabe vereinfachen kann.

RegEx und RTI-Änderungen werden in Notes aber ein haariges Ding. Ich denke, die Themen (RTIs manipulieren einerseits und RegExs und Stringmanipulationen) sollte man daher streng gekapselt sehen.

Bernhard

TMC:
Bernhard, RTI ist kein Problem, da -- wie oben angedeutet -- das via Agent läuft, also beispielsweise Nachts über DXL laufen kann, damit also keinerlei Performance-Einschränkungen.

Mir geht es hier primär um RE, die Umsetzung auf RTI ist nicht wirklich problematisch.

@Matches ist sicherlich ein kleiner Bruchteil. Aber komplexe RE sind doch ein Tabu-Thema für @Formula/LS.

Die Flexibilität via RE ist halt enorm: z.B. plattformunabhängiger "Code". Ich kann das im RE-fähigen Texteditor / Windows-Dateisuchmaschine genauso einsetzen wie in einer .NET- oder Perl-Umgebung.
Der Entwickler muss sich also nur einmal Gedanken machen, und kann diese prinzipiell beliebig einsetzen.
Und es gibt viele Aufgaben, die sich stetig wiederholen, z.B. http://www.regexlib.com/ listet solche.

Ich überlege auch schon, das ganze von einer externen App machen zu lassen und dann wieder in N/D zurückzuschreiben.

koehlerbv:

--- Zitat von: TMC am 16.12.05 - 23:26:24 ---Ich überlege auch schon, das ganze von einer externen App machen zu lassen und dann wieder in N/D zurückzuschreiben.
--- Ende Zitat ---

Hallo Matthias,

das wäre sicher bei weitem nicht die schlechteste Idee (vor allem, wenn Du eh schon über DXL arbeitest), da in einer entsprechenden externen App RE sehr maschinennah programmiert sein werden, was unvergleichlich performanter ist als ein Nachbau (!) auf Basis eines Interpreters.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln