Autor Thema: @Matches oder RegEx in Notes Formelsprache  (Gelesen 3551 mal)

Offline habemehl

  • Frischling
  • *
  • Beiträge: 38
@Matches oder RegEx in Notes Formelsprache
« am: 19.12.16 - 10:55:16 »
Moin, Moin zusammen,

ich versuche folgende Zeile möglichst gut mit RegEx zu beschreiben.

Code
[Karl-Heinz Mustermann] Kalkül #YKBL557397530OE

Folgender Ausdruck hat mich bisher zum Erfolg geholfen:

Code
[+{!0-9}]*#*

Wie bekomme ich den vorgenannten String noch präziser beschrieben?
In den [] kommen nur "Namen" vor, gefolgt von einem - belibigem - Wort und nach der Raute (#) folgt eine ID unterschiedlicher Länger, aber nur mit Großbuchstaben und Ziffern.

Aktuell experimentiere ich mit folgendem Promt:

Code
@Prompt([Ok];"Test";@If(@Matches(@LowerCase("[Karl-Heinz S] Kalkül #YKBL557397530OE");"[+{!0-9}]*#*");"Passt";"Falsch"))

Folgende Ideen führen leider immer zu einem negativen Ergebnis ("Falsch")
  • +{A-z} enthält keine Umlaute und keine Bindestriche etc.
  • Eine Verkettung, z.B. +{A-zü} findet das "Kalkühl" ebenfalls nicht

Wie bekomme ich für die ID ein Pattern "Nur Großbuchstaben oder Ziffern" hin, +{A-Z0-9} klappt nicht?

 :-:

Meine "Wissenquelle"

Vielen Dank und beste Grüße


Driri

  • Gast
Re: @Matches oder RegEx in Notes Formelsprache
« Antwort #1 am: 19.12.16 - 12:26:33 »
Für die ID müßte folgender Ausdruck funktionieren:

\#([A-Z0-9])+

Offline habemehl

  • Frischling
  • *
  • Beiträge: 38
Re: @Matches oder RegEx in Notes Formelsprache
« Antwort #2 am: 19.12.16 - 15:52:59 »
Moin,

Danke für den Vorschlag. Leider funktioniert der Vorschlag nur bei Verwendung von Java.
Im @Formel Umfeld scheint das nicht möglich zu sein.  :-:

Zunächst kam die Fehlermeldung "Ungültiges Textmuster", da in den @Funktionen geschweifte statt normale Klammern verwendet werden.

Beste Grüße
Martin

PS: Ich habe in meiner @Funktion jetzt das @LowerCase entfernt und für den Bereich der "ID" such ich nach "Keine kleinbuchstaben":

Code
@Prompt([Ok];"Test";@If(@Matches("[Karl-Heinz S] Kalkül #YKBL557397530OE";"[+{!0-9}]*#+{!a-z}");"Passt";"Falsch"))


PPS: Um den letzten Stern zu eleminieren wäre noch "Nur ein Wort" (analog \b) als Pattern nett, habe ich aber auch nicht gefunden.

Driri

  • Gast
Re: @Matches oder RegEx in Notes Formelsprache
« Antwort #3 am: 20.12.16 - 07:58:13 »
Ich habe in Notes noch nie mit RegEx gearbeitet. Vermutlich kommt Notes mit dem Slash nicht klar. Das übliche Vorgehen wäre dann eigentlich, einen doppelten Slash zu verwenden, also z.B. \\b.

Offline Flachmann

  • Senior Mitglied
  • ****
  • Beiträge: 284
  • Geschlecht: Männlich
  • Mal wieder: Flachmann ist Schuld!
Re: @Matches oder RegEx in Notes Formelsprache
« Antwort #4 am: 20.12.16 - 08:07:06 »
Ich glaube, @Matches() ist kein richtiges RegEx.  :P

Dieses Pattern funktionierte bei mir für Deine genannten Anforderungen: "[+{!0-9}]*#+{A-Z0-9}"

In den eckigen Klammern alles außer Ziffern (also auch Umlaute und sämtliche Sonderzeichen), dann irgendein String in beliebiger Länge, Nummernzeichen, irgendein Text in Großbuchstaben und Ziffern ohne weitere Sonderzeichen (da eine ID im allgemeinen keine Sonderzeichen enthält).

Du könntest Dir auch die einzelnen Teil-Strings mit @Word(), @Left(), @Middle() oder @Right() auseinander klamüsern und einzeln prüfen.
Gruß,
  __________
  _/_
  /lachmann

Offline habemehl

  • Frischling
  • *
  • Beiträge: 38
Re: @Matches oder RegEx in Notes Formelsprache
« Antwort #5 am: 27.12.16 - 13:32:32 »
Moin, Moin,

danke für den Denkanstoß mit den Teilstrings.
Dennoch habe ich mich jetzt erstmal mit  "[+{!0-9}]*#+{A-Z0-9}" begnügt.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz