我正在使用正则表达式解析一些html,我希望匹配以没有任何html标签的单词开头的行,同时还删除空格。使用c#regex我的第一个模式是:
pattern = @"^\s*([^<])";
试图获取所有空格然后捕获任何非'&lt;'字符。不幸的是,如果该行在第一个'&lt;'之前都是空白区域这将返回'&lt;'之前的最后一个空格字符。我希望这会使比赛失败。
有什么想法吗?
答案 0 :(得分:3)
不要使用正则表达式来解析HTML。这是一个非常糟糕的主意,充其量,你的代码将是不稳定的。无论您的语言/平台是什么,您都可以使用功能齐全的HTML解析器。只需使用它。
正则表达式无法正确处理转义,实体使用等所有情况。
答案 1 :(得分:1)
很快问到这个问题,刚刚解决了这个问题:
pattern = @“^ \ s *((?!\ s)[^&lt;] +)”;
感谢有关正则表达式和HTML的反馈,我将在未来考虑到这一点。我正在编写一个实用程序来制作几页多语言(即:为硬编码文本添加asp:文字等),我认为正则表达式足以达到此目的但是如果有更好的工具请告诉我(web stuff isn)我的地区......)。