2009-03-04 4 views
0

Я ищу регулярное выражение, которое определяет, является ли строка чем-то большим, чем куча HTML-тегов..net Регулярное выражение с использованием html-тегов

Таким образом, желательно функциональность:

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 

Однажды я мог бы сделать это сам, но это было слишком долго.

Заранее спасибо.

Редактировать: Меня не волнует, являются ли они настоящими тегами HTML. Позволяет называть что-либо внутри метки <>. Также не волнует, совпадает ли стартовый тег с конечным тегом.

ответ

2

Замените "<[^>]*>" пустой строкой, обрезайте результат и проверьте, не осталось ли что-нибудь после этого.

+0

Спасибо за быстрый ответ, я использовал этот метод, и он сработал. – user73803

0

я когда-то использовал это, чтобы вырезать HTML теги:

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

Я думаю, вы можете играть с ним немного (эта версия хотел сохранить пробелы), чтобы получить строку без тегов и проверки если оно не пусто

Update 1: Вот он идет :)

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

Вот статья написана Фил Хаака об использовании regular express to match html.

Кроме того, если вы хотите простую строку кода, рассмотрите загрузку строки в XmlDocument. Он будет анализировать его, чтобы вы знали, имеете ли вы действительный xml или нет.

+0

Я считаю, что вы неправильно поняли вопрос. – Tomalak

Смежные вопросы