正则表达式模式匹配hashtag,但不在HTML属性中

正则表达式模式匹配hashtag,但不在HTML属性中,html,regex,regex-lookarounds,Html,Regex,Regex Lookarounds,我正试图用正则表达式#([a-z0-9+)提取HTML文本中的哈希标记,但HTML属性有问题 例如,在HTML文本中: hola que tal with #hash1. hola que tal with #hash2 y <a href="hola.que.tal#hash3"> para #hash4. </a> hola que tal with#hash1。 带#hash2的hola que tal Y 我想恢复“hash1”、“hash2”和“hash4

我正试图用正则表达式
#([a-z0-9+)
提取HTML文本中的哈希标记,但HTML属性有问题

例如,在HTML文本中:

hola que tal with #hash1.
hola que tal with #hash2

y <a href="hola.que.tal#hash3"> para #hash4. </a>
hola que tal with#hash1。
带#hash2的hola que tal
Y
我想恢复“hash1”、“hash2”和“hash4”,但不恢复“hash3”

我尝试使用lookarounds解决它,使用以下表达式:

(?<!<)#([a-z0-9_]+)(?!.*?>)
(?)
但是没有成功

如何使用单个正则表达式来实现它?

这应该可以

/#[a-z0-9_]+(?![^<]*>)/
/#[a-z0-9]+(?![^)/


反向前瞻所做的是确保hashtag和下一个代码之间有一个

使用html解析器,最终使用xpath查询只针对文本节点。然后使用基本正则表达式查找每个文本节点的hashtag。我知道我可以通过几个步骤来完成,但我需要使用一个常规的expression.Thank@CasimiritHippolyte为什么只需一步(正则表达式)?我尝试在依赖它的所有调用中维护代码。感谢澄清,我还是一个新手。很棒的正则表达式。我附上结果,因为我需要捕获结果。用您的解决方案编辑。谢谢!