Regeln - Regulärer Ausdruck

Regulärer Ausdruck funktioniert bei den Regeln nicht

 
plutonium
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 04 / 2010
Betreff:

Regeln - Regulärer Ausdruck

 · 
Gepostet: 03.04.2010 - 14:47 Uhr  ·  #1
Hallo,

ich wollte bei den Filterregeln grade einen regulären Ausdruck für Verwendungszweck einrichten, aber irgendwie scheint es nicht zu funktionieren. Welches Format muss verwendet werden und welche Funktionen für reguläre Ausdrücke wurden schon implementiert?

Folgenden Ausdruck habe ich eingegeben:

/Steuern|MKG/gi

Dieser wird nicht erkannt. Hab schon verschiedene Kombinationen ausprobiert.

Kann mir jemand helfen, ich hab dazu keine Erklärungen gefunden.
In der Pecunia Hilfe finde ich auch nichts.

Gruß
Waldemar
Michael Döring
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 1495
Dabei seit: 07 / 2008
Betreff:

Re: Regeln - Regulärer Ausdruck

 · 
Gepostet: 04.04.2010 - 09:20 Uhr  ·  #2
Ich kenne die Regex Maschine von Pecunia nicht aber der /g-Modifier kommt eigentlich erst in Schleifen zur Geltung, weil darin die Iteration der Schleife ausgeführt wird.
Könnte mir daher vorstellen, dass der hier störend wirken könnte.
Hast es mal ohne g versucht?
Bzw. andersrum: Was soll das g Deiner Meinung nach erreichen?
plutonium
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 04 / 2010
Betreff:

Re: Regeln - Regulärer Ausdruck

 · 
Gepostet: 04.04.2010 - 15:10 Uhr  ·  #3
Zitat geschrieben von Michael Döring
Ich kenne die Regex Maschine von Pecunia nicht aber der /g-Modifier kommt eigentlich erst in Schleifen zur Geltung, weil darin die Iteration der Schleife ausgeführt wird.
Könnte mir daher vorstellen, dass der hier störend wirken könnte.
Hast es mal ohne g versucht?
Bzw. andersrum: Was soll das g Deiner Meinung nach erreichen?


Das g steht für global. Ich will damit erreichen, dass der Ausdruck für alle Zeilen gilt. Ansonsten funktioniert der Ausdruck nur für eine Zeile.

Ich hab es auch ohne g versucht. Ich hab den Eindruck, dass keine regulären Ausdrücke funktionieren. Denn wenn ich z.B. nur /./ eingebe, dann müsste er mir ja alle Umsätze anzeigen, denn der Punkt steht für ein beliebiges Zeichen. Reagiert aber darauf auch nicht.
reinerm
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 17
Dabei seit: 08 / 2009
Betreff:

Re: Regeln - Regulärer Ausdruck

 · 
Gepostet: 04.04.2010 - 16:11 Uhr  ·  #4
ich bin jetzt nicht sooo der regex experte, habe aber trotzdem ein bisschen mit der alpha 0.3 getestet. Ich glaube Du musst die "/" weglassen. "." steht für genau ein Zeichen. sollte alle mit genau einem Zeichen finden, ich glaube Du meinst ".*". Damit findet Pecunia zumindest bei mir was. Wenn Du mit | arbeiten willst, muss der Ausdruck glaube ich in Klammern stehen (Steuern|MKG).
Michael Döring
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 1495
Dabei seit: 07 / 2008
Betreff:

Re: Regeln - Regulärer Ausdruck

 · 
Gepostet: 04.04.2010 - 16:41 Uhr  ·  #5
/g für global? Bei einem Ersetze-regex ok aber bei einem Matching-Regex? Na ja, wie gesagt, ich kenne diese Maschine nicht.

Zitat geschrieben von reinerm
Wenn Du mit | arbeiten willst, muss der Ausdruck glaube ich in Klammern stehen (Steuern|MKG).

Auch so eine Spezialität von dieser Software? Klammern braucht man in diesem Falle eigentlich nicht, weil die Alternation eindeutig ist und man hier vermutlich eh nicht mit $1 arbeiten kann, oder doch?
reinerm
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 17
Dabei seit: 08 / 2009
Betreff:

Re: Regeln - Regulärer Ausdruck

 · 
Gepostet: 04.04.2010 - 18:17 Uhr  ·  #6
hast ja Recht, geht auch ohne Klammern - ich verweise auf meinen ersten Satz;-) Ich habe mir das so angewöhnt, weil ich in den seltensten Fällen die komplette Zeile angebe. Wenn man dann sowas wie .* davor oder dahinter schreibt, ist es spätestens sinnvoll. Pecunia scheint übrigens den ganzen Verwendungszweck als eine Zeile zu übergeben.
Michael Döring
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 1495
Dabei seit: 07 / 2008
Betreff:

Re: Regeln - Regulärer Ausdruck

 · 
Gepostet: 04.04.2010 - 18:49 Uhr  ·  #7
Zitat geschrieben von reinerm
Pecunia scheint übrigens den ganzen Verwendungszweck als eine Zeile zu übergeben.

Das deutet ein wenig darauf hin, dass man in dieser Software für einen Regexmatch auf einen mehrzweiligen Verwendungszweck keinen speziellen Operator benötigt.
Nun fraglich, ob plutonium mit dem /g wirklich mehrere Zeilen im gleichen Feld (wäre dann nach reinerm's These nicht nötig) meint oder er einen Match über mehrere Felder (Verwendungszweck + Empfängername) erreichen will.

Wäre alles mal eine ganze Menge einfacher, wenn man wüsste, nach welchen Regeln die Regexmaschine in dieser Software arbeitet :)
macemmi
Benutzer
Avatar
Geschlecht:
Homepage: pecuniabanking.de
Beiträge: 423
Dabei seit: 09 / 2009
Betreff:

Re: Regeln - Regulärer Ausdruck

 · 
Gepostet: 04.04.2010 - 21:40 Uhr  ·  #8
Hallo,
Pecunia hat keine eigene Regex-Maschine sondern benutzt natürlich die in Cocoa eingebaute:

MATCHES
The left hand expression equals the right hand expression using a regex-style comparison according to ICU v3 (for more details see the ICU User Guide for Regular Expressions).

(aus dem Predicate Programming Guide).
Michael Döring
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 1495
Dabei seit: 07 / 2008
Betreff:

Re: Regeln - Regulärer Ausdruck

 · 
Gepostet: 05.04.2010 - 08:41 Uhr  ·  #9
Das müsste dann nach diesen Regeln laufen:
http://userguide.icu-project.org/strings/regexp

Und da sehe ich tatsächlich keine Schrägstriche und schon garnicht den g-Operator.

Würde dann si(“Steuern|MKG”, 0, status); verwenden.
S-Flag für single-line (sollte einen mehrzeiligen String wie einen einzeiligen matchen) und
I-Flag für case-insensitive
Weiß allerdings nicht, wie man diese Syntax in Pecunia eingibt.
plutonium
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 04 / 2010
Betreff:

Re: Regeln - Regulärer Ausdruck

 · 
Gepostet: 06.04.2010 - 18:45 Uhr  ·  #10
Zitat geschrieben von reinerm
ich bin jetzt nicht sooo der regex experte, habe aber trotzdem ein bisschen mit der alpha 0.3 getestet. Ich glaube Du musst die "/" weglassen. "." steht für genau ein Zeichen. sollte alle mit genau einem Zeichen finden, ich glaube Du meinst ".*". Damit findet Pecunia zumindest bei mir was. Wenn Du mit | arbeiten willst, muss der Ausdruck glaube ich in Klammern stehen (Steuern|MKG).


Ja, du hast Recht. Ich meine natürlich ".*" für alle Zeichen.
Hab jetzt den Befehl, den ich suchte:

Steuern.*|MKG.*

Damit funktioniert es. Danke an euch alle. Eure Beiträge haben mir weitergeholfen.

Gruß
Waldemar
Gewählte Zitate für Mehrfachzitierung:   0