2010-11-25 15 views
2

Ceci compile et exécute:Qu'est-ce qui correspond à cette regex?

var re = new Regex(@"what\ever"); 

Mais je ne peux pas trouver quelque chose qui lui correspond. whatever, what\ever et what\\ever tous ne correspondent pas.

\e n'est pas une séquence d'échappement valide AFAIK, donc je ne suis pas sûr de ce que le comportement visé est ici ...

Répondre

7

Je pense que \e correspond au caractère « Escape » (code ASCII 27). Par conséquent, il doit correspondre "what\x1bver"

+0

Cette réponse a été ajoutée à la [Expression régulière Stack Overflow FAQ] (http://stackoverflow.com/a/22944075/2736496), sous "Séquences d'échappement". – aliteralmind

3

\ e est le caractère de contrôle d'échappement

vous pouvez utiliser un outil gratuit appelé The Regulator qui a construit en IntelliSense qui aide pour des choses comme ça.

2

\e est généralement égal à \033.

+0

Correct ... mais qui utilise octal? – mpen

+0

@Mark: Les gens qui préfèrent garder leurs doigts sur la rangée de chiffres au lieu de tendre la main pour ces lettres embêtantes: P –

2

C'est la séquence d'échappement (0x1B).

Voir la section des caractères non imprimables here.

-1

Je pense que vous devriez utiliser

var re = new Regex(@"[what\ever]"); 

pour correspondre à "ce que \ jamais"

+0

Cela ressemble à une classe de caractères pour moi .... pas du tout ce que je veux. Cela correspond à * n'importe quoi * avec 1 ou plusieurs de ces lettres. Sans parler de ce n'était qu'un exemple ... Je n'ai pas l'intention de faire correspondre 'what \ ever' (si je l'ai fait, j'utiliser' what \\ ever') – mpen

+0

'-1' pour avoir donné une mauvaise réponse. [Voir cette explication] (http://rick.measham.id.au/paste/explain.pl?regex=%5Bwhat%5Cever%5D) – HamZa

Questions connexes