正则表达式模式匹配主题标签,但不匹配HTML属性

时间:2016-06-20 10:51:26

标签: 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>

我想要恢复&#34; hash1&#34;,&#34; hash2&#34;和&#34; hash4&#34;但&#34; hash3&#34;。

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

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

但没有成功。

如何使用单个正则表达式

1 个答案:

答案 0 :(得分:3)

这应该有效

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

请参阅http://www.regexpal.com/?fam=95144

负面预测的作用是确保主题标签与下一个<之间有>