2017-07-06 1 views
0

Je dois comparer deux chaînes contenant des balises HTML. Je voudrais ignorer le casing des balises HTML eux-mêmes, mais comparer le casing des autres chaînes en dehors des balises HTML. Souhaiterait de l'aide pour coder cette logique. Par exemple, je veux ignorer le casing des tags TD dans les chaînes ci-dessous.Comparaison de chaînes C# Ignorer la sensibilité des majuscules Balises HTML

String1: "<td>this is case-sensitive</td>" 

String2: "<TD>THIS is CASE-sensitive</TD>" 
+0

vous devez répondre aux réponses autrement comment vont-ils savoir ce que vous cherchez? – Krishna

Répondre

1

Vous pouvez utiliser la classe Regex puis faire une comparaison.

donc suivant votre exemple, vous pouvez effectuer les opérations suivantes:

var string1 = "<td>This is case-sensitive</td>"; 
var string2 = "<TD>This is case-Sensitive</TD>"; 

var regex = new Regex("<[^>]*>"); 

Console.WriteLine(regex.Replace(string1, "") == regex.Replace(string2, "")); 
//Result is False 
+0

Merci! Je vais essayer ça! – AngieM

+0

Désolé je ne suis pas trop couramment avec Regex, mais comment puis-je faire un ToUpper ou ToLower sur les chaînes entre les chevrons plutôt que de les remplacer par ""? La raison en est que je veux comparer leur contenu (juste pas le boîtier). Dans votre exemple, je ne serais pas capable d'attraper si les tags ne correspondent pas. – AngieM

+3

[Lien obligatoire pour répondre à propos de l'utilisation de Regex pour analyser HTML] (https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) –

-2
string str = "<td>This is case Sensitive</td>"; 
      str = Regex.Replace(str, "<.*?>", String.Empty); 
      Console.Write(str); 

Cela peut fonctionner pour vous

+0

Avez-vous essayé d'exécuter ceci? Clairement, ça ne marchera pas. – mason

+2

@mason je pense qu'il doit être générique pour tous les tags – Krishna

+0

Pourquoi Downvote ??? en enlevant étiquettes que vous pouvez comparer Deux chaînes –