为方针加上链接的正则表达式

目标:用来匹配数据库中的内容,以“菊花茶”为例,想为菊花茶加上超链接。
需要替换的文本举例及法则说明:
1、我爱喝菊花茶,<a href="#">菊花茶</a>是我的最爱。【当文本中方针词已经有链接时,不再加上链接。】

2、我<a href="#">爱喝菊花茶</a>,菊花茶是我的最爱。【这种环境下,给第一个呈现的非锚文本的菊花茶加上链接。】

3、我爱喝菊花茶,菊花茶是我的<a href="#">最爱</a>。【这种环境下,给第一个菊花茶加上链接就行,后头的不消,也就是只匹配第一个。】

4、我爱喝<a href="#">菊花</a>茶,菊花茶是我的最爱。【这种环境下,给第一个呈现的非锚文本的菊花茶加上链接。】

5、我爱<a href="#">喝菊花</a>茶,菊花茶是我的最爱。【这种环境下,给第一个呈现的非锚文本的菊花茶加上链接。】其实就是找“菊花茶”,假如这个词已经有链接了,那跳过,假如没有,那么给第一个呈现的加上链接。

这是我遇到的较量有程度的问题,
假设加的新链接是<a href='http://enenba.com/new'></a>, 正则表达式如下:
### Perl ###

$str=~s/^((.(?!>菊花茶<))*?)菊花茶(?![^<]*<\/|.*>菊花茶<)/\1<a href='http://enenba.com/new'>菊花茶<\/a>/;

### JS ###

text.replace(/^((.(?!>菊花茶<))*?)菊花茶(?![^<]*<\/|.*>菊花茶<)/,"$1<a href='http://enenba.com/new'>菊花茶<\/a>");


##########测试功效:

1.我爱喝菊花茶,<a href="#">菊花茶</a>是我的最爱。

2.我<a href="#">爱喝菊花茶</a>,<a href='http://enenba.com/new'>菊花茶</a>是我的最爱。

3.我爱喝<a href='http://enenba.com/new'>菊花茶</a>,菊花茶是我的<a href="#">最爱</a>。

4.我爱喝<a href="#">菊花</a>茶,<a href='http://enenba.com/new'>菊花茶</a>是我的最爱。

5.我爱<a href="#">喝菊花</a>茶,<a href='http://enenba.com/new'>菊花茶</a>是我的最爱。

#########需要其他名目标本身试着改。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7932.html