我尝试替换文本(是html文件)中每个单词的出现以及周围的所有内容,直到后面遇到"
或'
或(
为止或)
用于使用nodejs与正则表达式一起转发。
我的问题是,当我有两个要替换的单词时,假设3.png
和13.png
,13.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做到这一点?
非常感谢您的答复和时间!
答案 0 :(得分:0)
@PushpeshKumarRajwanshi告诉使用\b
。
如果您想更准确地了解正则表达式,可以使用https://regex101.com/。 在右下角,您可以找到可能需要使用的所有正则表达式的特殊字符和功能。