javascript - 如何使用正则表达式将多个序列替换为列表中的值?

标签 javascript java regex string

我遇到一种情况,我需要使用正则表达式进行一些字符串操作,但我从未使用过正则表达式。

我的字符串是这样的 “这是[[制造]],[[制造]]的值(value)是[[[BMW]]],并且该[[[BMW]]]在市场上的可用性非常[高]。[[的另一个值(value)品牌]] 是 [[[奥迪]]],[[[奥迪]]] 的可用性是 [中等]”。

我有三个字符串类型的列表。 list1 包含 3 个字符串元素,用于替换 仅限 [[ ]] 之间的字符。因此第一个 [[Make]] 将被 list1 中的第一个元素替换。第二个 [[Make]] 将被列表中的第二个元素替换,依此类推。

类似的概念可以应用于list2,它也是一个包含字符串元素的列表。 列表 2 将替换 [[[ ]]] 之间的所有元素,并且按顺序排列。所以这个列表有 4 个元素。

List3 又是一个包含 2 个元素的字符串列表,仅替换 [] 之间的内容。

现在我面临的问题是,无论我使用什么正则表达式将 [ ] 的内容替换为 list3,它也会尝试替换 [[ ]] 和 [[[ ]]] 之间的内容。

谁能帮我解决这个问题吗?

最佳答案

这就是想法

    String s = " [x] [[x]]".replaceAll("(?<!\\[)\\[(?!\\[).*?\\]", "[1]");

它仅替换 [x] 并保留 [[x]] 不变。它使用负向外观 (?<!\\[)跳过双括号

关于javascript - 如何使用正则表达式将多个序列替换为列表中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32152329/

相关文章:

javascript - 通过 Javascript 显示或隐藏 PDF 中的元素

java - 使用 jquery 在文本字段中显示 servlet 结果

java - 更改 for 循环的初始值

java - Android下载二进制文件问题

java - testng-failed.xml 正在重新运行所有测试,而不仅仅是失败的测试

javascript - 循环遍历表不起作用

javascript - PDFium 有限的 JavaScript 支持

java - Java 正则表达式中的新行和美元符号

regex - Perl 在逗号上拆分列表,除非在括号内?

regex - Angular 2表单验证模式正则表达式错误