Sélection d'une expression régulière
Résolu
static695
-
static695 -
static695 -
Bonjour,
J'aimerais écrire une expression régulière pour sélectionné l'espace vide entre password=" et "roles="support"
j'ai essayé (?:password=")(.+?)(?:"\sroles="support") mais rien.
Bien cordialement.
J'aimerais écrire une expression régulière pour sélectionné l'espace vide entre password=" et "roles="support"
j'ai essayé (?:password=")(.+?)(?:"\sroles="support") mais rien.
Bien cordialement.
<user username="kwsupport" password="..." roles="support"/>
A voir également:
- Sélection d'une expression régulière
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Outil sélection illustrator ne fonctionne pas ✓ - Forum Illustrator
- L'indice n'appartient pas à la selection ✓ - Forum VB / VBA
4 réponses
Bonjour,
Pour simplifier l'expression et la rendre plus lisible, tu peux déjà enlever les groupes 1 et 3.
Par ailleurs, je ne pense pas que .+? soit valide. Mets plutôt .*
Du coup :
Xavier
Pour simplifier l'expression et la rendre plus lisible, tu peux déjà enlever les groupes 1 et 3.
Par ailleurs, je ne pense pas que .+? soit valide. Mets plutôt .*
Du coup :
password="(.*)"\sroles="support"
Xavier
ce que tu as fais sélectionne tout moi je veux juste sélectionné "cette espace vide" sans les guillemets
Oui mais tu as ton résultat dans le groupe 1. Tu peux aussi le nommer :
Après tu as la valeur en faisant ["password"].
Comme ça :
Xavier
password="(?<password>.*)"\sroles="support"
Après tu as la valeur en faisant ["password"].
Comme ça :
var regex = new Regex("password=\"(?<password>.*)\"\\sroles=\"support\""); var match = regex.Match(TaVariable); if (match.Success) { var password = match.Groups["password"].Value); }
Xavier
ce qui se passe c'est que j'ai déjà écris une fonction qui prend en paramètre une expression régulière et la remplace par la valeur qu'il faut, et la je dois donc injecter la valeur entre les deux guillemets mais je n'arrive pas a trouver l'expression régulière.
si je trouve pas je vais essayer ta méthode tout de même, merci.
si je trouve pas je vais essayer ta méthode tout de même, merci.
Bonjour
tu peux te servir des groupes dans un Regex.Replace
https://stackoverflow.com/questions/6005609/replace-only-some-groups-with-regex
Mais si tu veux une Regex, qui ne sélectionne que
Voir ici
tu peux te servir des groupes dans un Regex.Replace
https://stackoverflow.com/questions/6005609/replace-only-some-groups-with-regex
Mais si tu veux une Regex, qui ne sélectionne que
l'espace vide entre password=" et "roles="support"(t'aurais pu dire le mot de passe... parce qu'entre le mot de passe et l'attribut roles, il y a un espace...), il faut utiliser un "lookahead assertion"
Voir ici
http://regexstorm.net/tester?p=%28%3f%3c%3dpassword%3d%22%29%28.%2b%3f%29%28%3f%3d%22%5csroles%3d%22support%22%29&i=%3cuser+username%3d%22kwsupport%22+password%3d%22...%22+roles%3d%22support%22%2f%3e
http://regexstorm.net/tester?p=%28.%2b%3f%29%28%3f%3d%5cr%5cn%3cValve%29&i=Supprime+cette+ligne+pour+v%c3%a9rifier+que+%c3%a7a+marche+aussi%0d%0ajjjjjjjjjjjjjjjjj%28cette+ligne+sans+tout+ces+j+quoi%29%0d%0a%3cValve+className%3d%22org.apache.catalina.valves.AccessLogValve%22
J'ai supposé un saut de ligne valant \r\n, mais cela peut aussi être \n seul
Par contre, il y a plusieurs utilisateurs ayant un pseudo commençant par static et suivi de nombres qui posent des questions sur ce qui ressemble à un fichier xml (ou du html).
Si tous ces utilisateurs sont toi, vu le nombre de manipulations que tu fais à ce fichier, ne serait il pas plus intéressant de le passer, faire tes traitements sur de la données métier et à la fin écrire un nouveau fichier?
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Si tous ces utilisateurs sont toi, vu le nombre de manipulations que tu fais à ce fichier, ne serait il pas plus intéressant de le passer, faire tes traitements sur de la données métier et à la fin écrire un nouveau fichier?
Quand j'étais petit, la mer Morte n'était que malade.
George Burns