Ne peut pas échapper à la barre oblique inverse avec la regex?
Je suis en utilisant les regex suivante
^[a-zA-Z0-9\',!;\?$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$
Je sais c'est moche, mais jusqu'à présent, il sert son but autre que la barre oblique inverse n'étant pas autorisée car je pense qu'il devrait parce que cela s'est échappé, j'ai aussi essayé \\
au lieu de \\\
mais même résultats. Des idées?
- Quelle langue? Est-il cité?
- J'ai juste corrigé la faute de frappe dans le titre, mais il y a quelque chose de profondément génial sur le titre "ne Peut pas échapper à la réaction avec la regex?" En effet!
- Ne sommes-nous pas tous souhaitent regex pourrait nous aider à nous évader le jeu? >_>
- Zut, je souhaite juste que je pouvais échapper à la réaction des regex.
Vous devez vous connecter pour publier un commentaire.
Si vous mettez cela dans une chaîne de caractères au sein d'un programme, vous pouvez réellement besoin d'utiliser quatre barres obliques inverses (parce que la chaîne analyseur de supprimer deux d'entre eux lors de l' "de fuite" pour le chaîne, puis la regex besoin de deux pour une fuite de regex barre oblique inverse).
Par exemple:
est interprété comme...
est interprété comme...
est interprété comme une expression régulière qui correspond à une seule barre oblique inverse.
En fonction de la langue, vous pourriez être en mesure d'utiliser une autre forme de citer cela ne veut pas analyser les séquences d'échappement pour éviter d'avoir à utiliser un nombre - par exemple, en Python:
La
r
en face de la cite en fait un raw chaîne qui permet de ne pas analyser les antislashes.new RegExp('\\\\\\d');
.Si ce n'est pas un littéral, vous devez utiliser
\\\\
de sorte que vous obtenez\\
qui signifie que la séquence d'échappement barre oblique inverse.C'est parce qu'il y a deux représentations. Dans la représentation de chaîne de votre regex, vous avez
"\\\\"
, Qui est ce qui est envoyé à l'analyseur. L'analyseur va voir\\
il interprète comme un valide échappé à la barre oblique inverse (ce qui correspond à une seule barre oblique inverse).La barre oblique inverse
\
est le caractère d'échappement pour les expressions régulières. Par conséquent, une double barre oblique inverse serait, en effet, désigner un seul, backslash.\ (backslash) followed by any of [\^$.|?*+(){} escapes the special character to suppress its special meaning.
ref : http://www.regular-expressions.info/reference.html
De http://www.regular-expressions.info/charclass.html :
Quelle langue écrivez-vous les regex dans?
Cette solution corrigé mon problème en remplaçant br tag '\n' .