gpt4 book ai didi

PHP - 使用 preg_replace 更改特定字符后的单词颜色

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

我目前有 preg-replace 来更改显示在 div 中的单词的颜色。

但是目前它只是文本匹配。

if (sqlsrv_has_rows($stmt)) 
{
$data = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC);

echo "<div class='custom-font title-container'>
<div class='expand-button-container fa fa-expand' onclick='expandWindow()'></div>
<div id='title-container1'><div class='edit-note fa fa-pencil' onclick='editSQLNote()'>&nbsp;&nbsp;&nbsp;</div>" . "<div data-toggle='modal' data-target='#editSQLNoteNameModal' class='display-inline'>" . $data['SQLNoteName'] . "</div>" . "&nbsp;<div class='save-note fa fa-thumbs-up' onclick='saveSQLNote(); submitSQLNoteText();'></div></div>
</div>";

$note = nl2br($data['SQLNote']);
$note = preg_replace('%(SELECT|FROM|WHERE|INNER|JOIN|DISTINCT|LEFT|OUTER|APPLY|WITH|NOLOCK|DECLARE|ORDER BY|VARCHAR|bit)%m', '<span style="color: red;">$1</span>', $note);
$note = preg_replace('%(ISNULL|UPDATE|SET|INSERT INTO)%m', '<span style="color: #9A2EFE;">$1</span>', $note);
$note = preg_replace('%(IS NOT NULL|AND|IS NULL)%m', '<span style="color: grey;">$1</span>', $note);
$note = preg_replace('%(BEGIN TRAN|ROLLBACK TRAN|BEGIN|END|CASE|END|WHEN|THEN|ELSE)%m', '<span style="color: blue;">$1</span>', $note);
$note = preg_replace('%(GETDATE|MAX|CONVERT|UPDATE|CAST|COUNT)%m', '<span style="color: #FA58F4;">$1</span>', $note);

echo "<div contenteditable='true' id='ta4'>" . $note . "</div>";
}
else
{
echo "No data found";
}

但是我想知道是否有办法,如果我放一个 @ 符号,那么下一个单词是什么,直到单词后面的空格颜色改变。

因此,如果我输入@hello 和@goodbye,它们将变为绿色(包括@ 符号,但只到单词结尾)

但是我不能将这些词硬编码为你好和再见,因为它们总是不同的(这些将由用户声明变量,所以总是不同的)。

那么有没有办法动态改变@符号后面的文字颜色呢?

如果这没有意义,我深表歉意,我已尽力解释。

最佳答案

我想这样就可以了:

$note = preg_replace('%(@.+?\b)%m', '<span style="color: green;">$1</span>', $note);

.+?是非贪婪匹配,直到第一个 \b这是一个单词边界(空格,还有字符,例如 ,. 和换行符)。

关于PHP - 使用 preg_replace 更改特定字符后的单词颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44590030/

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