- 33
- 0
想要通过正则表达式实现文章关键词替换成链接的功能
我之前的写发是:
preg_replace("/(?<!['\"])".$keyword."(?!<\/a>)/",$replacement, $subject);
这样的方式可以实现关键词替换。
但是遇到了一个问题。
当$subject 被a标记包含 同时有其他词存在就会有冲突 例如:
$keyword = "关键词";
$subject = "<a href="www.example.com">这里是关键词的内容</a>"
$replacement = "<a href="target.com">管仅此</a>";
$result = preg_replace("/(?<!['\"])".$keyword."(?!<\/a>)/",$replacement, $subject);
这样的result结果就是有问题的 会在a标签内嵌套a标签。
想要的功能就是避免在a标签内嵌套。
请问如何写正确的正则表达式
- 共 0 条
- 全部回答
-
离心痛 η° 普通会员 1楼
在编写文章内链关键词正则表达式时,你需要考虑以下几点:
-
关键词的大小写:正则表达式中的关键词必须是大小写敏感的,这样才能匹配到所有的关键词。
-
关键词的字符范围:关键词的字符范围应包括字母、数字和特殊字符,这些字符可能出现在关键词的各个部分,包括开头和结尾。
-
关键词的组合:关键词可以是单独的单词,也可以是单词的组合。例如,"SEO优化"和"SEO优化"、"SEO优化"和"搜索引擎优化"等。
-
避免重复的关键词:在编写正则表达式时,尽量避免匹配到重复的关键词。如果一个关键词在文章中多次出现,你可以使用一些方法来避免重复,例如使用关键词分组或使用词组替换等。
以下是一个简单的例子,它匹配文章中的关键词,但只保留连续的五个关键词:
```regex (?<=\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\w+)(?:\b)(?:\
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

