Autor Thema: Regular Expressions auf Richtext-Items  (Gelesen 1897 mal)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Regular Expressions auf Richtext-Items
« am: 16.12.05 - 22:45:34 »
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\.\,\?\'\\/\+&%\$#\=~_\-@]*)*$

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

Danke für Tipps.

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Regular Expressions auf Richtext-Items
« Antwort #1 am: 16.12.05 - 23:03:43 »
Habe nochmal im Forum gesucht, u.a. hier eine Aussage von Bernhard:

Regular expressions lassen sich mit einmaligem Aufwand ja einfach auch mit LS nachbauen. Inclusive aller eigener Freiheiten  ;D

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.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Regular Expressions auf Richtext-Items
« Antwort #2 am: 16.12.05 - 23:12:24 »
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

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Regular Expressions auf Richtext-Items
« Antwort #3 am: 16.12.05 - 23:26:24 »
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.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Regular Expressions auf Richtext-Items
« Antwort #4 am: 16.12.05 - 23:30:44 »
Ich überlege auch schon, das ganze von einer externen App machen zu lassen und dann wieder in N/D zurückzuschreiben.

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

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Regular Expressions auf Richtext-Items
« Antwort #5 am: 17.12.05 - 04:33:31 »
Java 1.4 (Domino 7). Für Java 1.3 gibt es dafür irgendwo auf apache.jakarta auch packages.
Und. Bernhard: Regular Expressions können bestimmte Aufgaben wesentlich einfacher erledigen als reines Lotus Script String-Handling (würd ich sagen). 
google rät: http://forum.java.sun.com/thread.jspa?threadID=432987&messageID=1939602

Dürfte als 3 stufiger Prozess (in einem Java Agenten) gehen.
1. Dokument in DXL umwandeln (oder einfach nur das RT Feld).
2. Regular Expressions drüberlaufen lassen (mit den genannten Apis, s. link oben (wenig code)). 
3. Änderungen in Notes Dokument zurückspeichern.

Problem könnte sein, dass Round Trip Engineering Notes-Doc-> DXL -> NotesDoc in bestimmten Fällen nicht 100% dokumentecht ist. IBM arbeitet dran.
Trotzdem ein interessanter Ansatz.

Axel
« Letzte Änderung: 17.12.05 - 09:59:31 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Regular Expressions auf Richtext-Items
« Antwort #6 am: 17.12.05 - 10:05:28 »
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.
Also da muss ich als gebranntes Kind leider wiedersprechen. Es gibt (leider) sehr wohl Unterschiede zwischen den verschiedenen RegEx-Implementationen. Vor allem, wenn man über die 0815-Ausdrücke hinaus geht.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Regular Expressions auf Richtext-Items
« Antwort #7 am: 17.12.05 - 10:44:26 »
Ich bin sowieso grundsätzlich daran interessiert, eine Beispieldatenbank "Praktisch Arbeiten mit DXL" zu erstellen, wo man solche Use Cases lösen könnte.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Regular Expressions auf Richtext-Items
« Antwort #8 am: 17.12.05 - 13:00:58 »
Und. Bernhard: Regular Expressions können bestimmte Aufgaben wesentlich einfacher erledigen als reines Lotus Script String-Handling (würd ich sagen).

Da stimme ich Dir ohne Wenn und Aber zu, Axel.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz