我知道(?<!)
运算符背后的负面外观,但Expo/React Native中使用的Javascript引擎似乎不支持它
export function processEmbedded(text: string): string {
return text.replace(/(?<!!)[Embedded]/gm, "![Embedded]");
}
我所做的有点古怪,因为我脱下衣服并重新添加。
export function processEmbedded(text: string): string {
return text
.replace(/![Embedded]/gm, "[Embedded]")
.replace(/[Embedded]/gm, "![Embedded]");
}
对于我的案例来说,它确实有效,但我很确定有一个边缘案例是无效的。
您可以使用以下捕获组来使用此解决方案:
export function processEmbedded(text: string): string {
return text.replace(/(^|[^!])[Embedded]/gm, "$1![Embedded]");
}
RegEx演示
CCD_ 2匹配第一捕获组中不是!
的行或字符的开头。在替换中,我们使用$1
反向引用将其放回。