462 Stimmen

Welche Sonderzeichen müssen in regulären Ausdrücken escaped werden?

Ich bin es leid, immer zu raten, ob ich Sonderzeichen wie ' ()[]{}| ' usw., wenn viele Implementierungen von Regexps verwendet werden.

Anders verhält es sich zum Beispiel mit Python, sed, grep, awk, Perl, rename, Apache, find und so weiter. Gibt es eine Regel, die mir sagt, wann ich Sonderzeichen auslassen sollte und wann nicht? Hängt das vom Regexp-Typ ab, wie PCRE, POSIX oder erweiterte Regexps?

5 Stimmen

Gute Regex-Bibliotheken haben Funktionen wie " escape() ", um die Verwendung beliebiger Zeichenketten als Regex-Teile zu ermöglichen.

2 Stimmen

Sie können Online-Regex-Ausdrucksprüfungen verwenden wie gskinner.com/RegExr (es ist kostenlos). (Tippen Sie ein und fahren Sie dann mit der Maus über die eingegebene Regex)

0 Stimmen

In PHP können Sie verwenden php.net/preg_quote

1voto

Für awk Wenn Sie paranoid sind und vorsichtshalber alles vermeiden wollen, dann ist das genau das Richtige für Sie:

von der ASCII Liste der sicheren Terminals :

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ
                           [\]^_`abcdefghijklmnopqrstuvwxyz{|}~

dies anwenden:

gsub(/[!-/{-~:-@[-\140]/,   "[&]")
gsub(/\^|\\/,            "\\\\&" ) 

zu machen:

 [!]["][#][$][%][&]['][(][)][*][+][,][-][.][/]
0123456789[:][;][<][=][>][?]

[@]ABCDEFGHIJKLMNOPQRSTUVWXYZ[[][\\][]][\^][_]
[`]abcdefghijklmnopqrstuvwxyz[{][|][}][~]

0voto

Alejandro del Río Punkte 3738

Bei Ionic (Typescript) müssen Sie einen doppelten Schrägstrich verwenden, um die Zeichen zu trennen. Zum Beispiel (dies ist, um einige Sonderzeichen übereinstimmen):

"^(?=.*[\\]\\[!¡\'=ªº\\-\\_ç@#$%^&*(),;\\.?\":{}|<>\+\\/])"

Bitte beachten Sie dies ] [ - _ . / Zeichen. Sie müssen doppelt gestrichen sein. Wenn Sie das nicht tun, haben Sie einen Tippfehler in Ihrem Code.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X