正则表达式:匹配没有>的短语或白色空间

时间:2009-04-27 10:11:04

标签: c# html regex

我正在使用正则表达式解析一些html,我希望匹配以没有任何html标签的单词开头的行,同时还删除空格。使用c#regex我的第一个模式是:

pattern = @"^\s*([^<])";

试图获取所有空格然后捕获任何非'&lt;'字符。不幸的是,如果该行在第一个'&lt;'之前都是空白区域这将返回'&lt;'之前的最后一个空格字符。我希望这会使比赛失败。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

不要使用正则表达式来解析HTML。这是一个非常糟糕的主意,充其量,你的代码将是不稳定的。无论您的语言/平台是什么,您都可以使用功能齐全的HTML解析器。只需使用它。

正则表达式无法正确处理转义,实体使用等所有情况。

答案 1 :(得分:1)

很快问到这个问题,刚刚解决了这个问题:

pattern = @“^ \ s *((?!\ s)[^&lt;] +)”;

感谢有关正则表达式和HTML的反馈,我将在未来考虑到这一点。我正在编写一个实用程序来制作几页多语言(即:为硬编码文本添加asp:文字等),我认为正则表达式足以达到此目的但是如果有更好的工具请告诉我(web stuff isn)我的地区......)。