我有一个以管道分隔的值字符串,如下所示:
s1 | s2 | s3 | s4 | s5 | s6 | s7 | s8 | s9 | s10 | s11 | s12 | s13 | s14 | s15 | s16 | s17 | s18 | s19
我想要做的是用|
替换;
的每个第六个实例,以便我有这样的东西..
s1 | s2 | s3 | s4 | s5 | s6 ; s7 | s8 | s9 | s10 | s11 | s12 ; s13 | s14 | s15 | s16 | s17 | s18 ; s19
我设法通过使用下面的代码来替换每一秒管道,但是每隔六个管道就没有运气。
"s1 | s2 | s3 | s4 | s5 | s6 | s7 | s8 | s9 | s10 | s11 | s12
**".replace(/\|([^|]*)\|/g, '|$1:')**
非常感谢任何建议。
答案 0 :(得分:0)
我不会使用正则表达式。相反,您可以拆分|
并根据索引进行工作以进行字符串构建。在JavaScript中:
string.split("|").reduce((prev, next, id) => prev + (id % 6 ? "|" : ";") + next);
如果您必须使用正则表达式,您可以查找此模式6次并替换它之间的所有内容:
string.replace(/(.*?\|.*?\|.*?\|.*?\|.*?\|.*?)\|/g, "$1;")