Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 20

Thema: "Reguläre Ausdrücke..." (Filter-Regeln)?

  1. #1
    tatebaer Gast

    "Reguläre Ausdrücke..." (Filter-Regeln)?

    Hallo.

    Was ist mit "Regulären Ausdrücken durch Kommata getrennt" gemeint?

    Es ist mir schon klar das ich hier zB. durch Kommata getrennte Adressen oder Textfolgen angeben kann um so Telegramme Durchzulassen oder Zurückzuweisen.

    Reguläre Ausdrücke klingt für mich aber so als ob man hiermit noch einiges mehr machen kann. Leider finde ich weder in POC32, noch in diesem Forum etwas mehr zu diesem Thema.

    Hat vielleicht schon Jemand herausgefunden ob man hier noch etwas mehr wie nur durch Kommata getrennte Textfolgen als Filter definieren kann?

    Gibt es zB. Platzhalter?
    Kann man die Anwendung eines Filter nur auf die Adresse oder den Nachrichtetext begrenzen?

    Ich fände es toll wenn Ihr hier mal über Eure Erfahrungen zu diesem Thema berichtet.

  2. #2
    Registriert seit
    10.12.2003
    Beiträge
    3.902
    Felix
    felix[null][null][null]@funkmeldesystem.de

  3. #3
    tatebaer Gast

    Wikipedia habe ich dazu schon gelesen, aber...

    Aus der Wikipedia:

    "... Die jeweiligen Regexp-Implementierungen sind jedoch nicht alle gleich. In den Programmiersprachen haben sich überwiegend die PCRE durchgesetzt, die sich an der Umsetzung in Perl orientieren. Daneben wird – vor allem in der Linux-Welt – z. B. zwischen BRE (basic regular expressions) und ERE (extended regular expressions) unterschieden.
    Einige Programme wie z. B. der Texteditor vim bieten die Möglichkeit, zwischen verschiedenen Regexp-Umsetzungen hin- und herzuschalten. ..."

    Bedeutet doch das es von Programmiersprache zu Programmiersprache bzw. von Programm zu Programm Unterschiede gibt.

  4. #4
    tatebaer Gast

    Test einiger der in Wikipedia aufgezählten Ausdrücke

    Ich habe eine Nachricht in der auch das Wort "Garten" vorkommt.

    Ich habe nun folgende Ausdrücke aus der Wikipedia probiert:

    Bei Treffer sollen die Filter zurückweisen.

    [:lower:]arten (sollte das Telegramm anzeigen, macht es auch)
    [:upper:]arten (sollte das Telegramm zurückweisen, zeigt es aber an)
    [:space:]Garten (sollte das Telegramm zurückweisen, zeigt es aber an)

    Die Wikipedia scheint also nicht die wirkliche Lösung zu sein.

  5. #5
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Das alter von POC32 berücksichtigend würde ich es etwas einfacher angehen.

    z.B.

    [a-f|h-z|]arten

    sollte gerade nicht auf garten zu treffen. Aber auf warten.

    Wenn ich das mal eben durchspiele ist POC32 auch nicht case-sensitive. Das entfällt also direkt als Kriterium .

    [w|g]arten trifft z.B. auf Garten zu.

    Ebenso wird auch kein Whitespace \s Unterstützt. Wohl aber das echte, eingegebenen Leerzeichen (z.B. "kein [a-g]arten") trifft nicht auf "wir gehen in den garten" zu. Wohl aber auf "Da ist kein Garten".

    Soweit erstmal klar ?

  6. #6
    tatebaer Gast
    Jawohl Buebchen.

    Deine Beispiele habe ich eben als Filter ausprobiert. Sie funktionieren so wie du es beschrieben hast. Soweit habe ich es auch verstanden.

    Wie würde dann ein Filter aussehen um zB. alle Adressen von 1185000 bis 1354999 auszublenden?

    Ich werde mal versuchen selber eine Lösung zu finden, aber vielleicht ist es für Dich ja ganz einfach.

  7. #7
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    118[5-9]*,
    119*,
    12*,
    13[0-4]*,
    135[0-4]*

    müßte gehen.

  8. #8
    Registriert seit
    25.03.2004
    Beiträge
    546
    Also diese Variante funktioniert bei mir auch nicht! Hab POC 2.13

    Gibts noch andere Ideen, um ganze Bereiche zu filtern (zu unterdrücken), z.B. alles was mit 0, 2, 3, 4, 5, 6, 7, 8, 9 beginnt ?

  9. #9
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Also es wäre schön, wenn dann etwas mehr input kommt
    - Werden zu viele gefiltert
    - werden keine gefiltert
    - werden nur einige nicht gefiltert ?

    Nun gut, folgendes geht bei mir:

    118[5000-9000],
    119[0000-9999],
    12[00000-99999],
    13[00000-49999],
    135[0000-4999]

  10. #10
    tatebaer Gast
    Um Adressen die mit 0,2,3,4,5,6,7,8 und 9 beginnen zu unterdrücken sollten zwei Wege möglich sein.

    1. mit Filterfunktion "Zurückweisen"

    [0]\d\d\d\d\d\d;
    [2]\d\d\d\d\d\d;
    [3]\d\d\d\d\d\d;
    [4]\d\d\d\d\d\d;
    usw.

    Der Filter sollte nun treffen wenn die Zeichenfolge mit 0,2,3,4,5,6,7,8 oder 9 beginnt und im Anschluss noch 6 Zahlen folgen.

    2. mit Filterfunktion "Durchlassen"

    [^0]\d\d\d\d\d\d;
    [^2]\d\d\d\d\d\d;
    [^3]\d\d\d\d\d\d;
    [^4]\d\d\d\d\d\d;
    usw.

    Der Filter sollte nun treffen wenn die Zeichenfolge NICHT (darum ^ vor der Zahl) mit 0,2,3,4,5,6,7,8 oder 9 beginnt und im Anschluss 6 Zahlen folgen.


    Soweit die Theorie wenn ich das mit diesen Regulären Ausdrücken richtig verstehe. Aber in der Praxis funktioniert es anscheinend auch nicht. Zumindest hier funktioniert es nicht.

    Ist schon seltsam.

  11. #11
    tatebaer Gast
    @Buebchen

    zB.
    [0]\d\d\d\d\d\d trifft nicht auf 0173793
    [2]\d\d\d\d\d\d trifft nicht auf 2108262
    usw.

  12. #12
    Registriert seit
    25.03.2004
    Beiträge
    546
    Obige Variante funktioniert nicht !!!!

  13. #13
    tatebaer Gast

    Regular Expresion Editor

    Es gibt ein nettes Programm mit dem man Filter erstellen und testen kann.

    http://www.cfregex.com/visualregex/kregexpeditor.zip

    Zum einen kann man Reguläre Ausdrücke in ASCII erstellen. Dann besteht aber auch die Möglichkeit Reguläre Ausdrücke durch das Einfügen von Ausdrücken über Symbole zu erstellen. Zum Testen kann man beliebige Texte in ein Feld eingeben oder laden.

    Vielleicht ganz hilfreich um Reguläre Ausdrücke auch einmal unabhängig von der anscheinend etwas eigenwilligen Implementierung in POC32 zu testen.

    [0]\d\d\d\d\d\d oder auch [0]\d{6} trifft hier zB. 0173793

  14. #14
    Registriert seit
    11.12.2001
    Beiträge
    1.008
    Zitat Zitat von tatebaer Beitrag anzeigen
    @Buebchen

    zB.
    [0]\d\d\d\d\d\d trifft nicht auf 0173793
    [2]\d\d\d\d\d\d trifft nicht auf 2108262
    usw.
    Zitat Zitat von elsterine Beitrag anzeigen
    Obige Variante funktioniert nicht !!!!
    Zitat Zitat von tatebaer Beitrag anzeigen

    Vielleicht ganz hilfreich um Reguläre Ausdrücke auch einmal unabhängig von der anscheinend etwas eigenwilligen Implementierung in POC32 zu testen.

    [
    tatebaer hat es erfasst und das sollte mein ersten Posting schon klarstellen: Reguläre Ausdrücke sind ein komplexes Thema. Man kann damit nicht nur Filter erstellen. Man kann ganze Zeichenketten auf ein Muster prüfen und Teile davon dann extrahieren. Wobei das auch von der einzelnen Implementierung des regex abhängt. Und die von POC32 ist eher einfach gehalten.
    Statt \d würde ich mal [0-9] versuchen ... Vielleicht reicht das schon. Von Negierungen würde ich abstand nehmen :-)

  15. #15
    Registriert seit
    25.03.2004
    Beiträge
    546
    Also beides klappt nicht (weder \d noch das mit den eckigen Klammern). Schade!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •