我有一些带有 [cid:ce743cbf-8c44-4c84-aa72-6d2c9eb4b81a]
标签的文本(内联附件)
我需要浏览文本并将其替换为文件链接。 所以我需要将实际标签与括号匹配,并记住其中的 UUID 作为参数提供给替换函数。
给定字符串
var str = "some text 1 [cid:12345] more text follows 2 [cid:6789] last text"
我试图用这个测试替换它,但它甚至没有正确匹配。
str.replace(/\[cid:(.+)\]/gm, function(m,p){return p})
我不太了解reg ex,请帮忙。我认为这与贪婪有关,因为它消耗了第一场比赛和最后一场比赛之间的一切。
谢谢。
最佳答案
+
是 greedy运算符意味着它将尽可能多地匹配并且仍然允许匹配正则表达式的其余部分。使用 +?
进行非贪婪匹配,意思是“一个或多个——最好尽可能少”。
/\[cid:(.+?)]/g
注意:可以去掉m
(多行)修饰符,在这里使用没有意义。
关于javascript - 用正则表达式替换文本中的多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27933793/