我的目标是使html hastag,为此,我需要将#换成
<a class="tag"><span class="hash">#</span>text</a>
我不会做正则表达式,它可以用#和@来给我单词,但是我对这样的URL有一些麻烦: http://gitlab.com/#xxx或https://medium.com/@erikdkennedy
我的示例字符串:
<p>Some text <span class="highlighted">#test</span><br />
<a href="http://gitlab.com/#xxx" target="_blank" class="link">gitlab.com/#xxx</a><br />
<code>some feature</code></p>
我的正则表达式是:
(?!.*(<mail-link|link))#([a-zA-Z0-9]+)
我在#test和最后#xxx(https://regex101.com/r/pXxIkf/1)中有2场比赛
我如何只能进行测试,而在href定义内找不到?
谢谢!
答案 0 :(得分:1)
尝试一下:
(?<=\>)(?:[\s]*(?:#|@))([a-zA-Z0-9]+)
(?<=>)后向肯定,以确保井号之前有>
。
(?:启动非捕获组。
[\ s] * 是否存在空格。
(?:#| @)非捕获组,请确保其中有# or @