gpt4 book ai didi

php - 正则表达式查找后面没有字母的单词

转载 作者:搜寻专家 更新时间:2023-10-31 21:45:03 27 4
gpt4 key购买 nike

我正在遍历文本字符串(在 php 中)以将数据库中的某些关键字更改为链接。问题是当数据库中的单词彼此存在时,例如:

开发,开发,开发...

我最终得到:

"Random string with the word <a href="developer"><a href="develop">develop</a>er</a> in it"

我只需要在 developer 周围包装一个标签,而不是其中的 develop ...

这是我当前的功能:

function hyper($haystack){ 
$query = "SELECT * FROM `hyperwords` ";
$query .= "WHERE `active` = '1' ";
$query .= "ORDER BY LENGTH(hyperword) DESC ";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$needle = $row['hyperword'];
$link = $row['link'];
$haystack = preg_replace("/($needle)/iu", "<a class='meta' href='$link'>$1</a>", $haystack);
}
return $haystack;
}

提前致谢!!!

最佳答案

$altered = preg_replace("/\b($needle)\b/iu", "<a class='meta' href='$link'>$1</a>", $altered);

是你需要的:)

The metacharacter \b is an anchor like the caret and the dollar sign. It matches at a position that is called a "word boundary". This match is zero-length.

参见 here获取更多信息:)

关于php - 正则表达式查找后面没有字母的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com