RegEx将找到引用的字符串但不在HTML标记内

时间:2013-03-19 14:55:35

标签: .net regex

我一直在寻找一个正则表达式来识别HTML页面内容中的引用字符串,但如果引号是HTML标记属性的一部分则不是。

示例:

<p id="123">This is some "quoted text" in a <span class="test">sentence.</span></p>

在上面一行中,我想找到“引用文字”字符串但不是id =“123”或class =“test”。

我尝试了一些但没有工作。

以下REGEX在上面的例子中选取了HTML标签并排除了句子内容......但是我希望它能做相反的事情:

<[^>]+>

2 个答案:

答案 0 :(得分:3)

如果你想解析HTML以获得有用的东西,请使用HTMLAgilityPack - 它可以让你做这样的事情非常简单。

另请参阅:You can't use Regex'es to parse HTML

答案 1 :(得分:0)

在这个特定的背景下,我认为你不会有很多保证。如何在一段HTML中将引用的字符串放在一起有太多选项。但是,根据您在上面给出的具体示例,以下表达式将找到“引用文本”:

(?<=(?:^|>)[^<>]*)"[^"]+"(?=[^<>]*(?:<|$))