将长单词拆分为块的正则表达式堆栈表达式

Regex stack expressions to split long words into chunks

我尝试堆叠两个正则表达式,但没有成功。

在我的例子中,我需要找到所有长度大于等于 50 的单词

\w{50,}

现在我只需要将那些匹配项分成 10 个字符的块。

.{1,10}

我无法将第二个表达式应用于第一个表达式匹配项。 你有什么想法吗?

谢谢!!!

Javascript replace()可以用一个函数代替

str = str.replace(/\w{50,}/, function(m) {
  return m.match(/.{1,10}/g).join(' ');
});

See this demo at tio.run - 或者更短一点:

str = str.replace(/\w{50,}/, m => m.match(/.{1,10}/g).join(' '));

不知道在 JS 中是否可以仅使用一个正则表达式。在 PCRE 中:(?:\G\B|\b(?=\w{50}))\w{10}\B\K