gpt4 book ai didi

javascript - 正则表达式不匹配句子中的特定文本?

转载 作者:行者123 更新时间:2023-11-30 20:10:27 26 4
gpt4 key购买 nike

我正在实现一个搜索输入,这是我的代码:

 "Author: Tiara Jordan Date: 02/23/17 Title: The Big Bang Theory",.replace(new RegExp( 't', 'g' ),`<strong>t</strong>`)

这将导致:

"Au<strong>t</strong>hor: <strong>T</strong>iara Jordan Da<strong>t</strong>e: 02/23/17 <strong>T</strong>i<strong>t</strong>le: <strong>T</strong>he Big Bang <strong>T</strong>heory"

如何跳过匹配正则表达式的作者、标题和日期?我的预期结果是这样的:

“作者:Tiara Jordan 日期:02/23/17 标题:T大爆炸T理论”

最佳答案

您需要一个具有两个主要替代分支的正则表达式:一个将匹配您要避免修改的上下文,另一个将匹配您的可变文本。捕获其中之一以便以后能够应用不同的替换逻辑:

.replace(
new RegExp("\\b(Date|Author|Title)\\b|" + t.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), "gi"),
(x,y) => y ? y : `<strong>${x}</strong>`)

在这里,\\b(Date|Author|Title)\\b|将匹配并捕获整个单词之一 Date , AuthorTitle , 和 t.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') (这个 replaceescaping regex method )将匹配 t 中的文字文本变量。

替换如下:如果第 1 组匹配,y将包含一些文本,并且只有该文本将用于替换匹配项。否则,比赛将用 <strong> 包装标签。

JS 演示:

var s = "Author: Tiara Jordan Date: 02/23/17 Title: The Big Bang Theory";
var t = "t";
console.log(s.replace(
new RegExp("\\b(Date|Author|Title)\\b|" + t.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), "gi"),
(x,y) => y ? y : `<strong>${x}</strong>`)
)

关于javascript - 正则表达式不匹配句子中的特定文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52469373/

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