Rechercher : dans
Par :

[C#]Regexp

Dernière réponse le 30 nov 2004 à 11:19:19 teebo, le 15 nov 2004 à 17:00:42 
 Signaler ce message aux modérateurs

Salut tout le monde :o)
Alors voilà, je suis en C# et j'essaye de faire une regexp pour remplacer dans une chaîne les * (wild cards, c'est à dire 0 ou plus charactères) en expression régulière mais je n'arrive pas à faire cela, je remplace par .* et il me remplace par n'importe quelle suite de au moins un ce que je ne veux pas...

result=Regex.Replace (result,@"([^\\])(\*)","$1.*");
			result=Regex.Replace (result,@"([^\\])(\*)","$1.*");
			result=Regex.Replace (result,@"^\*",".*");


ça transforme mes * en .* quand elles ne sont pas précédés par un \, mais cela nécessite encore au moins un charactère (c'est à dire que te*st ne trouvera pas test)

Si quelqu'un a une idée, j'ai aussi essayé (.)* et [.]* mais aucun résultat probant...

Qui va en mer pour son plaisir,
irait en enfer pour ses vacances

Meilleures réponses pour « [C#]Regexp » dans :
Javascript - L'objet RegExp Voir Les particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des...
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
3D Secure / Verified by Visa / SecureCode: Qu'est-ce que c'est ? VoirDepuis octobre 2008, les banques et commerçants en ligne ont commencé à adopter le système 3DSecure pour les paiements sur Internet. Qu'est-ce que c'est ? 3DSecure est appelé "Verified by Visa" chez Visa, et "SecureCode" chez Mastercard. (Les logos...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...

1

maily, le 15 nov 2004 à 17:17:37

Hello!!

Tu pourrais donner un exemple de chaine non transformée, puis transformée s'il te plait, comme ça, on verra mieux ce que tu veux dire! ;-)

Maily :-))))
Boumj'chtattrape

Répondre à maily

2

teebo, le 15 nov 2004 à 17:30:55

Bonche je vais revenir sur terre, je m'aperçoit que pour quelqu'un qui ne tourne pas en rond dans ce bout de code depuis des heures c'est pas clair :o)

Alors en fait je voudrais savoir comment dire dans une expression régulière : "n'importe quel charactère autant de fois que nécessaire, mais également rien du tout si possible" c'est à dire que cela se comporte comme une * de wild cards :o)

Merci :O)


Qui va en mer pour son plaisir,
irait en enfer pour ses vacances

Répondre à teebo

3

teebo, le 15 nov 2004 à 17:41:29

J'ai trouvé! En fait il faut que je remplace mon wild card * par (.?|.+) rien de moins et rien de plus, ça marche impecc maintenant :o)

Qui va en mer pour son plaisir,
irait en enfer pour ses vacances

Répondre à teebo

4

maily, le 15 nov 2004 à 17:44:58

Je me disais bien qu'il y aurait un | quelque part!!
Merci, du coup, ça m'intriguait!

Maily :-))))
Boumj'chtattrape

Répondre à maily

5

teebo, le 16 nov 2004 à 14:26:13

Arf, le prochain problème, puisque tu as l'air de t'y intéresser :o)

Alors j'ai

"***TEST*** : It this a [TEST]? *\* +++Yes+++"

comme string source

je recherche dedans

\*\*\*(.?|.+)\*

et au lieu de me donner comme résultat cette partie là:

***TEST*
comme je m'y attend, il me donne

***TEST*** : It this a [TEST]? *\*


En fait avec ce genre de test il cherche toujours le résultat le plus long 8-S

Tu (ou un autre) a une idée?

Qui va en mer pour son plaisir,
irait en enfer pour ses vacances

Répondre à teebo

6

Jeff, le 16 nov 2004 à 14:28:35

Si c'est comme les RegExp POSIX :

\*\*\*(.?|.+)?\*

                                   
Jeff  \--Webmaster@CCM--/ 

Répondre à Jeff

9

teebo, le 16 nov 2004 à 15:00:53

Nan, en fait ça change rien, il me trouve toujours la plus longue chaîne possible au lieu de chercher la plus courte possible :oS

Qui va en mer pour son plaisir,
irait en enfer pour ses vacances

Répondre à teebo

7

Jeff, le 16 nov 2004 à 14:30:18

Vu l'entrée source, je mettrais plutôt :

\*\*\*([A-Z]*)\*

                                   
Jeff  \--Webmaster@CCM--/ 

Répondre à Jeff

8

teebo, le 16 nov 2004 à 14:31:30

Merci mais mon entrée source est une de mes entrées de test, je veux rester global :o)
Je vais essayer avec un ? à la fin :o)

Qui va en mer pour son plaisir,
irait en enfer pour ses vacances

Répondre à teebo

10

Jeff, le 16 nov 2004 à 15:45:55
  • +1

Si ça peut t'aider, quelques exemples de RegExp en "CiSharp" :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconRegularExpressionExamples.asp

                                   
Jeff  \--Webmaster@CCM--/ 

Répondre à Jeff

11

teebo, le 16 nov 2004 à 16:01:54

Merci, mais rien de probant...bon je laisse tomber, je verrais ça dans deux semaines maintenant...Merci!

Qui va en mer pour son plaisir,
irait en enfer pour ses vacances

Répondre à teebo

12

 teebo, le 30 nov 2004 à 11:19:19

^
Je suis reviendu mais le problème est pas parti :-S
En plus quand je fais \*(.?|.+)?\* il me trouve 2 charactères au lieu d'en trouver 2 :-S


Qui va en mer pour son plaisir,
irait en enfer pour ses vacances

Répondre à teebo