2009-07-10 9 views

Antwort

6

Obwohl ich das genaue Problem nicht gelöst habe, haben Sie hier einen wichtigen Punkt übersehen/übersehen. :-)

ist ein Joker in Regex, es passt alles.

mit '.' verwenden

\. 

kann versuchen, dieses

([a-zA-Z0-9_\-.]+)@(base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com) 
+0

Kann den korrekten Ausdruck von oben erneut ausgeben; Ich bin jetzt verwirrt –

+0

@Jaison bearbeitet mein Beitrag versuchen, dass –

+4

@Rats: keine Notwendigkeit, einen Punkt (.) in einem Zeichenbereich ([]) zu entkommen. Ein Punkt in einem Zeichenbereich entspricht nur einem Punkt. –

10

Diese:

[a-zA-Z0-9_-.] 

enthält einen falschen Bereich, Punkt unterstreichen. Meinst Du "Unterstrich, Strich oder Punkt" wie folgt:

[a-zA-Z0-9_\-.] 

? Sobald ich das behoben habe, funktioniert es für mich.

Sie sollten auch \. anstelle von . in den Adressen verwenden - Punkt entspricht jedem Zeichen, so dass Sie baseXcom mit Ihrem Muster übereinstimmen würden. (Beachten Sie, dass Sie nicht über einen umgekehrten Schrägstrich für Punkte innerhalb [] s benötigen.)

Der vollständige korrigierte Ausdruck: (. Beachten Sie, dass ich @"" bin mit zu vermeiden, meine Schrägstriche zu Backslash)

@"([a-zA-Z0-9_\-.]+)@((base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com))" 

+0

Es funktioniert immer noch nicht –

+1

nach http://www.regexplanet.com/simple/index.jsp dies entspricht all Ihren Beispielen. Vielleicht ist deine Schuld woanders? –

0

Die Verwendung der regulären Ausdruck Tester here wird Ihnen wahrscheinlich helfen. Aber soweit ich sehen kann, gibt es einen Fehler in der regulären Ausdruck, der sie von der Arbeit mit jede der Beispiele verhindern sollte: die Gruppe sein sollte:

[-a-zA-Z0-9_.] 

Mit diesem Update, es funktioniert mit allen deiner Beispiele. Mit der - zwischen der _ und der . versucht, einen Bereich zu konstruieren, aber die ASCII-Werte sind in der falschen Reihenfolge. Bitte senden Sie sich ein minimales Fehler Beispiel, das wir kompilieren und ausführen können:

Auch der Punkt im Endteil verwendet wird, soll als base\.com statt base.com