Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1570 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Recherche occurence dans une chaîne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recherche occurence dans une chaîne

n°2127950
antolionux
Posté le 23-02-2012 à 11:50:07  profilanswer
 

Bonjour,
 
Dans un fichier je recherche l'occurrence suivante [HKEY_LOCAL_MACHINE\SOFTWARE\SOL\hexawin8]
 

Code :
  1. string sPattern = "HKEY_LOCAL_MACHINE\\SOFTWARE\\SOL\\hexawin8";
  2. if (System.Text.RegularExpressions.Regex.IsMatch(line, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
  3. {
  4.      ......
  5. }


et cela me lève une exception :  
 
parsing "HKEY_LOCAL_MACHINE\SOFTWARE\SOL\hexawin8" - Unrecognized escape sequence \h.
 
 
Apparemment il croit que \h de \hexawin8 est un caractère d'échappement. Mais comment contrer ce phénomène ?
 
Avez-vous une idée ?
 
D'avance merci

mood
Publicité
Posté le 23-02-2012 à 11:50:07  profilanswer
 

n°2127961
deliriumtr​emens
sic transit intestinal...
Posté le 23-02-2012 à 12:23:12  profilanswer
 

C'est un peu normal, mais si ton problème est exactement celui que tu présente, tu te compliques pas mal la tâche, non ?
Je vois pas bien l'utilité d'une expression régulière pour rechercher une chaîne connue.
 
Un simple
 

Code :
  1. var pattern= @"HKEY_LOCAL_MACHINE\SOFTWARE\SOL\hexawin8";
  2. if line.Contains(pattern)
  3. {
  4.     ...
  5. }


 
Edith me dit, si je ne m'abuse que pour rechercher un backslash dans une expression régulière, tu dois le quadrupler
 
Donc si tu tiens absolument à une expression régulière :

Code :
  1. string sPattern = "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\SOL\\\\hexawin8";
  2.     // ou plus lisible, un verbatim string, comme je l'ai fait dans l'exemple plus haut, avec un petit @ qui te permet d'éviter un doublement de caractère d'échappement
  3.    sPattern=@"HKEY_LOCAL_MACHINE\\SOFTWARE\\SOL\\hexawin8";
  4.     if (System.Text.RegularExpressions.Regex.IsMatch(line, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
  5.     {
  6.          ......
  7.     }


 
ou encore


Message édité par deliriumtremens le 23-02-2012 à 12:29:34
n°2127978
antolionux
Posté le 23-02-2012 à 13:46:53  profilanswer
 

merci pour ton aide
 
effectivement avec le quadruple antislash ça fonctionne.
 
La solution n°1 me parait bien plus simple en effet, mais le compilateur ne reconnais pas "var"

n°2127987
snipeangel
I want to believe
Posté le 23-02-2012 à 14:19:58  profilanswer
 

bah met string alors... mais ça semble bizarre qu'il ne reconnaisse pas var :heink:


---------------
http://forum.hardware.fr/hfr/Achat [...] 0043_1.htm
n°2127993
antolionux
Posté le 23-02-2012 à 14:33:51  profilanswer
 

J'ai tappé ça :
string sPattern = @"\[HKEY_LOCAL_MACHINE\\SOFTWARE\\SOL\\hexawin8\]";
 
et ça fonctionne. Parcontre pour var est-ce qu'il ne faudrait pas rajouter un using en début de programme ?
 
J'utilise Visual C# Studio 2010 Express

n°2128035
snipeangel
I want to believe
Posté le 23-02-2012 à 15:00:02  profilanswer
 

bof dans l'absolu c'est pas grave, et quoi qu'en dise Micromou, les var c'est le mal :O


Message édité par snipeangel le 23-02-2012 à 17:13:16

---------------
http://forum.hardware.fr/hfr/Achat [...] 0043_1.htm
n°2128054
antolionux
Posté le 23-02-2012 à 15:30:10  profilanswer
 

C'est ça je suis en mode .net 4 ;) en mode .net 2 ça reconnais bien le "var", merci pour toutes ces infos express


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Recherche occurence dans une chaîne

 

Sujets relatifs
Recherche d'un logiciel de création de site WebRecherche outils de gestion des connaissances
recherche logiciel libre pour formulaire, retour requêteSQL PHP Moteur De Recherche
Découpage chaine de caractèreCommunication socket
Envoie d'une chaine de caractèreQuestion de débutant, créer petit logiciel de recherche de texte.
Recherche base de données composant PCMacro Word recherche chaine avec retour a la ligne
Plus de sujets relatifs à : Recherche occurence dans une chaîne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR