仅当正则表达式满足某些条件时,才如何替换html中的单词

时间:2019-04-25 10:52:39

标签: html node.js regex

我尝试替换文本(是html文件)中每个单词的出现以及周围的所有内容,直到后面遇到"'(为止或)用于使用nodejs与正则表达式一起转发。

我的问题是,当我有两个要替换的单词时,假设3.png13.png13.png也被匹配的3.png替换了,而当我替换时13.png在我的文字中不存在,因为匹配先前的3.png时已被替换。

我理想的解决方案是:

if匹配的模式包含/

then,它必须与/之后完全匹配,并替换周围的所有字符(包括斜杠),直到遇到以下字符之一(排除)"'(用于后面或)

else""''()之间完全匹配


您可以在这里找到regex101 example

目前,我正在对单词进行排序以进行搜索,例如:

  imgjson.sort((a, b) => b.name.length - a.name.length);

为了首先替换最长的单词,这解决了我的问题,因为我们先替换13.png,然后替换3.png,但是我想知道是否可以使用js regex做到这一点?

非常感谢您的答复和时间!

1 个答案:

答案 0 :(得分:0)

@PushpeshKumarRajwanshi告诉使用\b

如果您想更准确地了解正则表达式,可以使用https://regex101.com/。 在右下角,您可以找到可能需要使用的所有正则表达式的特殊字符和功能。