如何每隔 n 个字符或最近的前一个空格分割字符串

2024-04-02

我想每 15 个字符(包括空格)插入一个换行符。

我目前正在使用下面的正则表达式,它在某种程度上起作用,但它占用了单词后最近的空格,并且我想要最近的前一个空格。有任何想法吗?

const split = str.replace(/([\s\S]{15}[^ ]*)/g, '$1\n');

有人有什么想法吗?


您可以使用

s.replace(/[\s\S]{1,15}(?!\S)/g, '$&\n')

See the 正则表达式演示 https://regex101.com/r/OyIQDP/1

Details

  • [\s\S]{1,15}- 任何 1 到 15 个字符,尽可能多(也就是说,一次抓取所有 15 个字符,然后回溯以查找...)
  • (?!\S)- 后面没有紧跟非空格的位置(因此是空格或字符串结尾)。

请注意,无需将整个模式包裹起来(...)因为你可以用 a 来指代整场比赛$&替换模式中的占位符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何每隔 n 个字符或最近的前一个空格分割字符串 的相关文章

随机推荐