2016-03-25 1 views
-1

Ich habe die folgende Regex.Regulärer Ausdruck. Die Regex schlägt fehl, wenn verbotene Zeichen in der zweiten Zeile sind

^(?!.*&#.*)[\u00e1\u00c1\u00e9\u00c9\u00ed\u00cd\u00f3\u00d3\u00fa\u00da\u00f1\u00d1\u00fc\u00dc\u00ab\u00bb\u00bf\u00a1`\w\d\s\-'.,&@:;®?!()$#/‘’*“”"]+$ 

Das Problem ist, wenn der folgende Text in der zweiten Zeile eingegeben wird die Regex nicht die „& #“ verfängt nicht Zeichen erlaubt. Regex findet keine Übereinstimmung mit der Eingabe in einer Zeile. Die Kombination & # ist nicht erlaubt. Wenn jedoch der Eingang wie folgt ist, d. H. & # ist auf zweite ine Die Kombination & # ist nicht erlaubt.

Es wird erlauben. obwohl die verbotenen Zeichen "& #" noch in der Eingabe sind. Nicht sicher, welche Optimierung notwendig ist, damit Regex funktioniert, wenn diese Zeichen in der secode-Zeile stehen.

+1

Die Anker '^' und '$' werden die Enden einer Linie – Laurel

Antwort

1

In Ihrem regex ersetzen (?!.*&#.*) von (?![\s\S]*&#[\s\S]*)

Das Spiel Punkt . alle Zeichen außer den neuen Linien. Das ist dein Fehler.

Das entspricht allen Leerzeichen \s und alle Nicht-Leerzeichen \S. Das heißt, wenn Sie die folgende Zeichenklasse [\s\S] verwenden, können Sie jedes einzelne Zeichen zuordnen.

Gute Erfolge

+0

dank entsprechen. Es funktioniert jetzt mit neuen Zeilen. –

+0

Ok, dann akzeptiere die Antwort, um anzuzeigen, dass die Frage keine Hilfe mehr benötigt. Haben Sie einen guten Tag. –

Verwandte Themen