string = "bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;bla;";
bla是通配符。
我想通过在分号(;)的每第6次插入时插入换行符(\ n)来更新我的字符串
我一直试图用正则表达式来做这件事:
var myregexvar = textbox.value;
myregexvar = myregexvar.replace(/\u003b.*\u003b.*\u003b.*\u003b\b/, /$1\n/);
/ u003b是';'
的unicode字符代码它不起作用。帮助!
答案 0 :(得分:2)
尝试匹配(([^;]*;){5}[^;]*);
并替换为$1\n
。
第一个分组表达式([^;]*;){5}
查找五个bla;
。然后[^;]*
获得第六个bla
(没有;)。所有这些都归为$1
。然后单独匹配最后一个分号,以便将其省略并替换为替换表达式中的\n
。
修改强>
没有意识到你想在每六个分号后添加 \n
,而不是替换。您可以使用这个更简单的匹配表达式:([^;]*;){6}
。
答案 1 :(得分:0)
希望这个算法可以帮助你
$occurance = 6;
$count = 0;
while (/\u003b/gi) {
if (++$count == $occurance) {
myregexvar.replace(/\u003b/, /\n/);
}
}