2013-01-18 2 views
1

Je rencontre un problème de style "matcher" css dans un texte. Je veux obtenir le style suivant:Comment faire correspondre un texte de style css en C#

de style Recherche

<a id="d325" style="color: #ffffff;"> Visio Infrastructure and Applications </ a> 

Regex occasion:

Regex myRegex = new Regex(@"<a id=""d(.+?)"" style=""(.+)"" ><\/a>"); 

Je pense que le problème est style = "color: # fffff", mais je ne peux pas comprendre.

Merci beaucoup

+1

Jetez un oeil à cela pour obtenir des informations sur votre code HTML. https://github.com/jamietre/CsQuery – albertjan

Répondre

3

Les problèmes avec votre regex sont

Regex myRegex = new Regex(@"<a id=""d(.+?)"" style=""(.+)"" ><\/a>"); 
                 ^  no space in the string 
                  ^  the text between the tags is not matched 
                   ^ there is a space in the string 

L'autre question est, est un regex l'outil pour ce travail?

+0

Fort accord sur la dernière partie. Utilisez une bibliothèque d'analyse HTML pour analyser HTML. Il y a beaucoup là-bas –

+0

1: pas d'espace dans la chaîne? Que veux-tu dire par là? –

+0

@MehdiBugnard, votre regex nécessite un espace à ce stade, mais dans la chaîne que vous voulez faire correspondre il n'y a pas d'espace à ce stade, donc l'expression régulière ne peut pas correspondre – stema

0

De mon côté, vous oubliez que les espaces dans votre regex avec celui-ci

<a\sid="d(.+?)"\sstyle="(.+)">.*?</a> 

vous avez le résultat: et couleur: #ffffff;

Le résultat souhaité?

Questions connexes