正则表达式,用于查找不属于超链接的文本

我正在尝试找到一个可用于解析HTML块以查找某些特定文本的正则表达式,但前提是该文本不是现有超链接的一部分。 我想将非链接转换为链接,这很容易,但使用单个表达式识别非链接的链接似乎更麻烦。 在以下示例中:

This problem is a result of BugID 12. If you want more information, refer to BugID 12. 

我想要一个单独的表达式找到“BugID 12”,所以我可以链接它,但我不想匹配第二个,因为它已经链接。

如果它很重要,我正在使用.NET的正则表达式。

如果.Net支持负面预测(我认为它确实如此):

 (BugID 12)(?!) // match BugID 12 if it is not followed by a closing anchor tag. 

但是,BugID 12仍然存在类似锚点的危险

 Something BugID 12 Something 

但你可以通过以下方式克服这一点

 (BugID 12)(?!(?:\s*\w*)*) // (?:\s*\w*)* matches any word characters or spaces between the string and the end tag. 

免责声明:使用正则表达式解析html是不可靠的,只应作为最后的手段,或在最简单的情况下。 我确信有很多实例,上面的表达式没有按预期执行。 (例如: BugID 12

不要这样做! 看杰夫阿特伍德的解析Html克苏鲁方式 !