我正在寻找一个正则表达式来检测字符串是否只是一堆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标签。让我们在&lt;&gt;标记内部调用任何内容。如果开始标记与结束标记匹配,也不要在意。
答案 0 :(得分:2)
用空字符串替换"<[^>]*>"
,修剪结果并检查之后是否还有其他内容。
答案 1 :(得分:0)
我曾经用它去除html标签:
const string tagsPatterns = "\\s*<.*?>\\s*";
value = System.Text.RegularExpressions.Regex.Replace(value, tagsPatterns, " ");
我猜你可以玩一点(这个版本想要保留空格),获取没有标签的字符串,并检查它是否为空
更新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(""));
}
答案 2 :(得分:0)
以下是Phil Haack撰写的关于使用regular express to match html。
的文章此外,如果您想要一行简单的代码,请考虑将字符串加载到XmlDocument中。它会解析它,所以你会知道你是否有有效的xml。