C# expressions regulieres
Fermé
trinity666
Messages postés
127
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
17 août 2011
-
24 août 2007 à 14:24
trinity666 Messages postés 127 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 17 août 2011 - 24 août 2007 à 15:21
trinity666 Messages postés 127 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 17 août 2011 - 24 août 2007 à 15:21
A voir également:
- C# expressions regulieres
- Expressions régulières "ne contient pas ..." ✓ - Forum Programmation
- C-outlook express recovery télécharger - Télécharger - Récupération de données
- Expressions francaises - Forum Études / Formation High-Tech
- Expression must have integral type c ✓ - Forum C
- Kyocera Ecosys P3060dn, traces régulières - Forum Imprimante
3 réponses
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
24 août 2007 à 14:46
24 août 2007 à 14:46
Bonjour,
Essaie quelque chose de ce genre :
Regex reg= new Regex(s1+"[^<]*"+s2);
par contre, cela interdit tout signe < dans le poste, mais logiquement tu dois les avoir remplacés par des <
Xavier
Essaie quelque chose de ce genre :
Regex reg= new Regex(s1+"[^<]*"+s2);
par contre, cela interdit tout signe < dans le poste, mais logiquement tu dois les avoir remplacés par des <
Xavier
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
24 août 2007 à 14:47
24 août 2007 à 14:47
Bonjour,
Premièrement, un truc qui m'étonne, pourquoi utiliser une regex alors que tu as un fichier xml?
Ensuite * ne fait pas parti des expressions régulières, c'est une wild card, ce n'est pas la même chose
Regarde l'explication chez oreilly par exemple.
Sinon pour ton deuxième exemple, . représente un caractère quelconque et * une suite de 0 à n fois le caractère précédent (c'est à dire en fait ici n'importe quelle chaîne...)
Premièrement, un truc qui m'étonne, pourquoi utiliser une regex alors que tu as un fichier xml?
Ensuite * ne fait pas parti des expressions régulières, c'est une wild card, ce n'est pas la même chose
Regarde l'explication chez oreilly par exemple.
Sinon pour ton deuxième exemple, . représente un caractère quelconque et * une suite de 0 à n fois le caractère précédent (c'est à dire en fait ici n'importe quelle chaîne...)
trinity666
Messages postés
127
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
17 août 2011
2
24 août 2007 à 15:21
24 août 2007 à 15:21
il ne trouve à nouveau plus l'expression qd le post contenant le titre cherché n'est pas le premier
je vais essayer d'utiliser xmltextReader pr recopier le fichier en enlevant le contenu du post puis il me restera à supprimer les noeuds vides
en gros ca donne ca
public static void enlevePost(string path, string titre) {
XmlTextReader xmlfile = new XmlTextReader(path);
string res = "<?xml version=" + "\"" + "1.0" + "\"" + "?>"+"<document>";
string tmp = "";
try
{
while (xmlfile.Read())
{
if (xmlfile.LocalName == "post")
{
xmlfile.Read();
if (xmlfile.LocalName == "titre")
{
if ((tmp = xmlfile.ReadString()) != titre)
{
res +="<post><titre>"+ tmp+"</titre>";
}
else { xmlfile.Read(); xmlfile.Read(); }
}
xmlfile.Read();
if (xmlfile.LocalName == "msg")
{
res +="<msg>"+ xmlfile.ReadString()+"</msg></post>";
}
xmlfile.Read();
}
}
res += "</document>";
}
catch (Exception ex) { ex.ToString(); }
finally { xmlfile.Close(); }
StreamWriter sw = new StreamWriter(path);
sw.WriteLine(res);
sw.Close();
}
}
ct pas une bonne idee ca marche pas du tout
je vais essayer d'utiliser xmltextReader pr recopier le fichier en enlevant le contenu du post puis il me restera à supprimer les noeuds vides
en gros ca donne ca
public static void enlevePost(string path, string titre) {
XmlTextReader xmlfile = new XmlTextReader(path);
string res = "<?xml version=" + "\"" + "1.0" + "\"" + "?>"+"<document>";
string tmp = "";
try
{
while (xmlfile.Read())
{
if (xmlfile.LocalName == "post")
{
xmlfile.Read();
if (xmlfile.LocalName == "titre")
{
if ((tmp = xmlfile.ReadString()) != titre)
{
res +="<post><titre>"+ tmp+"</titre>";
}
else { xmlfile.Read(); xmlfile.Read(); }
}
xmlfile.Read();
if (xmlfile.LocalName == "msg")
{
res +="<msg>"+ xmlfile.ReadString()+"</msg></post>";
}
xmlfile.Read();
}
}
res += "</document>";
}
catch (Exception ex) { ex.ToString(); }
finally { xmlfile.Close(); }
StreamWriter sw = new StreamWriter(path);
sw.WriteLine(res);
sw.Close();
}
}
ct pas une bonne idee ca marche pas du tout