[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Regexp filter in Evolution (vielleicht etwas OT?)



Hi zusammen, 

nachdem ich den halben Tag google gequält habe, frage ich erst mal euch
auf deutsch, bevor ich auf die ximian-listen aufspringe. 

Ich würde gern meine Filter in Evolution (1.4) aufbohren. Von hause aus
kennt Evo nur "if all criteria are met" oder "if any criteria are met". 

Nun bauen sich meine Filter - da ich einige Listen abonniert habe - so
auf, das ich zunächst nach der Liste filtere und dann nach bestimmten
Schlüsselwörtern im subject. Für unsere Liste schaue ich also erstmal ob
die mail von debian-user-german kommt, und dann z.B. ob es sich um
XServer ODER xfree ODER xf86config ODER xconfig handelt (nur so als
Beispiel). Nun war mir so, als ob Evo die Wörter im Feld "subject
contains" case-insensitive behandelt und durch ODER verknüpft. Damit
müsste ein Filter in der Art (verbalisiert, unten steht der xml-code):

If ALL CRITERIA ARE MET:
CRITERIA:
   1) LIST IS: debian-user-german
   2) SUBJECT CONTAINS: xserver xfree xf86config xconfig x-server
ACTIONS:
   1) MOVE MESSAGE TO FOLDER Inbox/linux-lists/deb-u-ger/XFree
   2) STOP processing this message

jede Nachricht unserer Liste in den angegebenen Ordner schubsen, wenn im
topic eines der gegebenen Wörter vorkommt. Das funktioniert aber nicht.
Wenn ich "If any criteria are met" mit den oben angeführten Bedingungen
verwende, landen _alle_ debian-user-german Mails in XFree. Lasse ich die
debian-user-german Bedingung weg und verwende "if any criteria are met",
dann versteht er die angegebenen Begriffe als durch ODER verbunden und
das ganze funktioniert. Leider landen dann aber unter Umständen auch
Nachrichten von anderen Listen in dem deb-u-ger/XFree Ordner, die da gar
nicht hingehören. Das ließe sich über die Reihenfolge der Filter regeln,
aber wenn mehrere Linux-Groups (wie bei mir) da sind, dann geht es immer
in einer oder der anderen Richtung schief.

Also dachte ich, ersetze ich die "subject contains" durch eine
"Expression"-Option. Laut Hilfe zu Evo verbirgt sich dahinter nämlich
die Möglichkeit, regexs (Plural von regex?) zu verwenden. Mehr steht
dazu leider nicht in der Hilfe, der dort vorhandene Link "regex"
schmeißt mich auf die erste Seite der Evo-Doku. 
Im Web habe ich hingegen - zumindest für ältere Evo-Versionen - gelesen,
dass dieses "Expressions" keine regex sondern was anderes sind. Dann
gibt es noch ein auswählbares Kriterium namens "regex" in dem
Filter-Dialog, das jedoch nirgends dokumentiert scheint. Dazu gibt es
dann ein Feld header oder body und die Möglichkeit eine regex
einzugeben.

Kann mir jemand sagen, wie ich in Evolution regex verwende und wie die
Syntax dafür lautet? Mit folgendem Eintrag erhalte ich 'nen Fehler bei
der Filter-Anwendung, ich denke mal, weil "expressions" eben keine
regexp sind oder die regexp-syntax in Evo eine andere ist als in grep,
egrep, sed etc.

    <rule grouping="all" source="incoming">
      <title>deb-u-ger: +xfree</title>
      <partset>
        <part name="mlist">
          <value name="mlist-type" type="option" value="is"/>
          <value name="mlist" type="string">
            <string>debian-user-german@lists.debian.org</string>
          </value>
        </part>
        <part name="sexp">
          <value name="code" type="code">
            <code>\(xfree\)|\(xserver\)</code>
          </value>
        </part>
      </partset>
      <actionset>
        <part name="move-to-folder">
          <value name="folder" type="folder">
            <folder
uri="file:///home/moi/evolution/local/Inbox/subfolders/Linux-Lists/subfolders/deb-u-ger/subfolders/xfree"/>
          </value>
        </part>
        <part name="stop"/>
      </actionset>
    </rule>

Verwende ich statt "expression" "regex", dann bekomme ich zwar keinen
Fehler, aber die regex \(*XServer*\) (ja, ich suche erst mal nur nach
einem Wort) wirkt auf ein Topic wie :

Re: XServer - umstieg von CRT auf TFT via dabconf

leider nicht. Die Nachricht bleibt wo sie ist.

Hüllfööh!

Gruß
Lars


-- 
LarsWeissflog
L@rs-W dot DE




Reply to: