(.*[a-zA-Zäöü]{2,}.*_.*[a-zA-Zäöü]{2,}.*_+<.*\w.*@\w+.*\.[a-zA-Z]{2,4}>)|(\w+@\w+.*\.[a-zA-Z]{2,4}_+\(.*[a-zA-Zäöü]{2,}.*_.*[a-zA-Zäöü]{2,}.*\))
Achtung: Leerzeichen innerhalb des regexp-Ausdrucks werden auf dieser Seite durch einen Unterstrich (_) dargestellt. Bitte daran denken, bei der Verwendung wieder Leerzeichen daraus zu machen.
Nein, das ist keine chemische Formel, kein Geek-Code und kein UUEncodeter Text.
Es handelt sich einfach um den Versuch, mit regular expressions einen Realnamenfilter aufzubauen.
Im Praxiseinsatz hat er sich bisher durchaus bewährt.
Ich möchte trotzdem nicht ausschließen, dass vielleicht noch Macken drin sind
(vor allem Umlaute sind etwas knapp berücksichtigt),
oder dass man das Ding noch optimieren kann.
Vorschläge sind willkommen.
Zertrümmern wir das doch mal in seine Bestandteile.
Es gibt zwei Arten von möglichen vollständigen Mail-Adressen.
Bei der ersten Sorte kommt vorne der Name, dahinter in spitzen Klammern die eigentliche Mail-Adresse.
Bei der zweiten Sorte kommt vorne die Mail-Adresse, dahinter in runden Klammern der Name.
Damit müssen wir schon mal zwei Varianten unterscheiden,
die aber in ihren jeweiligen Einzelbestandteilen durchaus identisch sind.
Fangen wir mal vorne an mit den Erklärungen:
Der gesamte Filter
| ( | Dieser Ausdruck besteht aus zwei Alternativabfragen, die jeweils mit runden Klammern begrenzt werden. Dies ist die öffnende Klammer für den ersten Ausdruck |
| .*[a-zA-Zäöü]{2,}.*_.*[a-zA-Zäöü]{2,}.* | Dieser Ausdruck versucht einen Realnamen zu identifizieren. Detailinformationen finden sich weiter unten auf der Seite. |
| _+ | Hier folgt jetzt mindestens ein Leerzeichen. |
| < | Die öffnende spitze Klammer ist der linke äußere Trenner für die eigentliche Mail-Adresse. |
| .*\w.*@\w+.*\.[a-zA-Z]{2,4} | Hier fischen wir uns die Mail-Adresse. Detailinformationen finden sich weiter unten auf der Seite. |
| > | Hiermit machen wir die linke Klammer wieder zu. |
| ) | Der erste Ausdruck wird geschlossen. Teil 1 ist erledigt. |
| | | Eine ODER-Bedingung. Den ersten Teil haben wir ja bereits fertig, jetzt folgt der zweite. |
| ( | Mit dieser öffnenden Klammer beginnen wir den zweiten Vergleichsausdruck |
| .*\w.*@\w+.*\.[a-zA-Z]{2,4} | Hier fischen wir uns die Mail-Adresse. Detailinformationen finden sich weiter unten auf der Seite. |
| _+ | Hier folgt jetzt mindestens ein Leerzeichen. |
| \( | Die öffnende runde Klammer ist der linke äußere Trenner für den Realnamen. |
| .*[a-zA-Zäöü]{2,}.*_.*[a-zA-Zäöü]{2,}.* | Der Realname wird gesucht. Detailinformationen finden sich weiter unten auf der Seite. |
| \) | Die Klammer wird hinter dem Realnamen wieder zugemacht. |
| ) | Der zweite Ausdruck wird geschlossen. Auch Teil 2 ist erledigt. |
Realname
.*[a-zA-Zäöü]{2,}.*_.*[a-zA-Zäöü]{2,}.*
| .* | Wir suchen einen Namen. Dieser kann mit beliebigen Zeichen beginnen. Falls jemand seinen Spitznamen an erster Stelle eingetragen hat und ihn mit z.B. einem Hochkomma oder einem anderen seltsamen Zeichen beginnt, dann würde der Filter bei einer Abfrage auf Buchstaben an der ersten Stelle zuschlagen. Wir sind ja nett, das wollen wir nicht, daher diese Lösung. |
| [a-zA-Zäöü]{2,} | Nun sollten irgendwann mindestens zwei Buchstaben für den ersten Namensbestandteil kommen. [Fremdsprachige Umlaute fehlen allerdings.] |
| .* | Nach den zwei Buchstaben erlauben wir wieder beliebige Zeichen |
| _ | Das Leerzeichen wird als Trenner für Vor-und Nachnamen verwendet und sollte demzufolge vorhanden sein |
| .* | Der zweite Namensbestandteil wird identisch zum ersten aufgebaut. Zuerst kommen beliebige Zeichen. |
| [a-zA-Zäöü]{2,} | Hier kommen jetzt die mindestens zwei Buchstaben für den zweiten Namensbestandteil ... [Auch hier fehlen die fremdsprachigen Umlaute.] |
| .* | ... und noch mal beliebige Zeichen. Soweit fertig. |
Mail-Adresse
.*\w.*@\w+.*\.[a-zA-Zäöü]{2,4}
| .* | Die Mail-Adresse darf zunächst etwas beliebiges enthalten. |
| \w | Ein alphanumerisches Zeichen sollte schon vorhanden sein. |
| .* | Und jetzt kommt noch mal was beliebiges bevor ... |
| @ | ... jetzt ein @ kommt. |
| \w+ | Weiter geht's mit mindestens einem alphanumerischen Zeichen ... |
| .* | ... gefolgt von etwas beliebigem. |
| \. | Dies ist der letzte Punkt der Mail-Adresse. |
| [a-zA-Z]{2,4} | Zum Schluss kommt die Top-Level-Domain,
die aus zwei bis vier Alpha-Zeichen besteht. Fertig. [Na ja, so ganz fertig ist es doch nicht: Inzwischen gibt es die TLD museum, die noch eingebaut werden müsste.] |
Vorschläge und Kritik bitte per Mail an Matthias Esken.
04.12.2002