IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

C# Regex.Replacement .


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 176
    Par défaut C# Regex.Replacement .
    Bonsoir, je reste scotché depuis plusieurs heures par une expression régulière.

    Plus exactement, je souhaite trouver un caractère dans une chaîne (un peu compliquée et remplacer celui-ci par un autre caractère.

    par exemple, dans : 74.8* 0.00I 999.9, je souhaite remplacer * par un X et l'on suppose que cette chaîne est extraite d'une chaîne très longue et qu'il faut donc impérativement recourir à l'intégralité de ce bout de chaîne pour identifier les * bien "positionnés" .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    string texte  = "1012.7  8  1007.0 8 7.1  8 999.9    92.1    74.8* 0.00I 99.9  000000 971920 99999  20111008* 83.2 7 74.1 7 1012.7 7 1006.9 7 7.1 7 5.8 7 2.0 999.9 93.9 74.1*  0.00I 999.9  000000";
    971920;
    string pattern = @"\*,\d{1,3}.\d{1,3}I,\d{1,3}.\d{1,3},\d{6}";
    string remplacement =   "X"  // je suis paumé en fait ????  ;
     
    Regex myReg = new Regex(pattern);
    string resultat = myReg.Replace(texte, remplacement);
    il me faudrait quelque chose du style : " cherche et remplace par un X les * qui se trouvent avant une décimale suivi d'un . puis de deux décimales puis de trois décimales puis d'une point et enfin d'un décimale.

    j'espère trouver un peu d'aide ...

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Par défaut
    Bonjour,

    Je te propose de essayer la expression ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \*(?=\d\.\d{2}\d{3}\.\d)
    Ça va convenir ta description : " cherche et remplace par un X les * qui se trouvent avant une décimale suivi d'un . puis de deux décimales puis de trois décimales puis d'une point et enfin d'un décimale."
    Mais tu peux utiliser la expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string pattern = @"\*(?=\ {1,2}\d{1,3}\.\d{1,3}I\ \d{1,3}\.\d{1,3}\ {1,2}\d{6})";
    pour remplacer * dans la texte "74.1* 0.00I 999.9 000000" par X.

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 176
    Par défaut
    Ah! d'accord. çà marche ! je crois que j'ai saisi le truc.

    sur le même principe, je suis allé un peu plus loin, afin d'extraire avec plus de certitudes ce dont j'ai besoin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string pattern3 = @"\*(?=,\d{1,3}.\d{1,3}[A-I],\d{1,3}.\d{1,3},\d{6})"
    merci Alex.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] regex replacer mots par lien dans page html
    Par AudeB dans le forum Langage
    Réponses: 3
    Dernier message: 05/11/2010, 13h20
  2. Réponses: 4
    Dernier message: 10/09/2009, 16h15
  3. Réponses: 2
    Dernier message: 11/06/2008, 09h32
  4. Soucis avec regex.replace
    Par elric47 dans le forum ASP
    Réponses: 1
    Dernier message: 29/04/2008, 23h33
  5. [Regex] Replace possible ?
    Par Tchinkatchuk dans le forum C
    Réponses: 2
    Dernier message: 18/12/2006, 09h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo