2009-03-04 8 views
0

Je cherche une expression régulière qui détecte si une chaîne est autre chose qu'un groupe de balises HTML..net Expression régulière impliquant des balises html

Ainsi, la fonctionnalité souhaitée est:

Input -> Output 

"<html></html>" -> False 

"<html>Hi</html>" -> True 

"<a href='google.com'>Click Me</a>" -> True 

"hello" -> True 

"<bold><italics></bold></italics>" -> False 

"" -> Don't care 

une fois je aurais pu faire moi-même, mais il a été trop long.

Merci d'avance.

edit: Je m'en fous si ce sont de vraies balises HTML. Appelons n'importe quoi à l'intérieur <> est un tag. Aussi, ne vous souciez pas si une balise de début correspond à une balise de fin.

Répondre

2

Remplacez "<[^>]*>" par la chaîne vide, rognez le résultat et vérifiez s'il reste quelque chose par la suite.

+0

Merci pour la réponse rapide, j'ai utilisé cette méthode et cela a fonctionné. – user73803

0

Une fois, j'utilisé cela pour dépouiller les balises HTML:

const string tagsPatterns = "\\s*<.*?>\\s*"; 
value = System.Text.RegularExpressions.Regex.Replace(value, tagsPatterns, " "); 

Je suppose que vous pouvez jouer avec un peu (cette version voulait garder des espaces blancs), pour obtenir la chaîne sans balises et contrôle si elle n'est pas vide

Mise à jour 1: ici, il va :)

bool HasText(string value) 
{ 
    const string tagsPatterns = "<.*?>"; 
    value = System.Text.RegularExpressions.Regex.Replace(value, tagsPatterns, ""); 
    return value.Trim() != ""; 
} 
[TestMethod] 
public void TestMethod2() 
{ 
    Assert.IsFalse(HasText("<html></html>")); 
    Assert.IsTrue(HasText("<html>Hi</html>")); 
    Assert.IsTrue(HasText("<a href='google.com'>Click Me</a>")); 
    Assert.IsTrue(HasText("hello")); 
    Assert.IsFalse(HasText("<bold><italics></bold></italics>")); 
    Assert.IsFalse(HasText("")); 
} 
0

Voici un article écrit par Phil Haack sur l'utilisation d'un regular express to match html.

De même, si vous voulez une simple ligne de code, pensez à charger la chaîne dans un XmlDocument. Il l'analyserait donc vous saurez si vous avez xml valide ou non.

+0

Je crois que vous avez mal compris la question un peu. – Tomalak

Questions connexes