javascript - 用正则表达式替换文本中的多个字符串

标签 javascript regex

我有一些带有 [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/

相关文章:

javascript - 正则表达式将文本与第一次出现的分隔符相匹配

javascript - 将 php 添加到 javascript (wordpress)

javascript - jquery如何动态获取值?

Javascript - 添加更多按钮功能和 2 个动态选择标签

javascript - 读取用户在网页上上传的文件后无法发布数据

javascript - 正则表达式: matching certain format but excluding specific value

javascript - jQuery 不会触发

java - 如何从配置单元中的字符串中删除特殊字符

javascript - 使用 javascript 正则表达式使引用的文本变得漂亮

java - 如何过滤 Java 字符串以仅获取字母字符?