Javascript 用于在每个N个字符后创建段落的正则表达式

Javascript 用于在每个N个字符后创建段落的正则表达式,javascript,regex,Javascript,Regex,我有一个长字符串段落,有多个用点分隔的句子。 我想把它转换成多个段落。 规则是从字符串的开头开始计数,找到第250个字符后的第一个点,并在其后面放置一个换行符。再次从这个新创建的换行符中计数,找到第250个字符后的第一个点,并在其后面放置换行符,依此类推 orginalString = 'Lorem ipsum dolor sit amet, eu ius everti consequat instructior, sed modus vitae nostrud cu, ad. principe

我有一个长字符串段落,有多个用点分隔的句子。 我想把它转换成多个段落。 规则是从字符串的开头开始计数,找到第250个字符后的第一个点,并在其后面放置一个换行符。再次从这个新创建的换行符中计数,找到第250个字符后的第一个点,并在其后面放置换行符,依此类推

orginalString = 'Lorem ipsum dolor sit amet, eu ius everti consequat instructior, sed modus vitae nostrud cu, ad. principes iracundia efficiendi pro. Et eam movet iudico ancillae. Ei mucius invidunt assueverit sit, nostrum oportere ne ius, qui similique scripserit heus et. Eam an tota mollis placerat, an quem voluptua appellantur est.Stet movet quaerendum his ea. Eum facete consequuntur ea, in vix liber quodsi. Percipit moderatius his et, id viderer salutandi vix. Scaevola suscipiantur id quo, ne eirmod consetetur cotidieque sit. Habemus noluisse ex ius.Cum ut dicant everti. Per ad vero exerci. Dolor eruditi eu eos. Alii fugit iisque sea ei, ponderum theophrastus concludaturque nec in. Eam ea modo dolores, has case pericula forensibus id.Laudem appetere senserit qui eu, pro ut essent euripidis. Vim ut elit utinam ridens, his facilis placerat eu. Mel omnis causae eripuit ei, mel no cibo essent temporibus, an quot efficiantur mea. Cu duo diam errem accommodare, nisl posse equidem an vis, his no omnes partem.'
这是最后一个字符串:

finalString = 'Lorem ipsum dolor sit amet, eu ius everti consequat instructior, sed modus vitae nostrud cu, ad. principes iracundia efficiendi pro. Et eam movet iudico ancillae. Ei mucius invidunt assueverit sit, nostrum oportere ne ius, qui similique scripserit heus et.
 Eam an tota mollis placerat, an quem voluptua appellantur est.Stet movet quaerendum his ea. Eum facete consequuntur ea, in vix liber quodsi. Percipit moderatius his et, id viderer salutandi vix. Scaevola suscipiantur id quo, ne eirmod consetetur cotidieque sit.
 Habemus noluisse ex ius.Cum ut dicant everti. Per ad vero exerci. Dolor eruditi eu eos. Alii fugit iisque sea ei, ponderum theophrastus concludaturque nec in. Eam ea modo dolores, has case pericula forensibus id.Laudem appetere senserit qui eu, pro ut essent euripidis.
 Vim ut elit utinam ridens, his facilis placerat eu. Mel omnis causae eripuit ei, mel no cibo essent temporibus, an quot efficiantur mea. Cu duo diam errem accommodare, nisl posse equidem an vis, his no omnes partem.'

我如何解决这个问题

下面的正则表达式实现了这一点:

originalString='Lorem ipsum door sit amet,欧盟委员会指导人,以个人生活方式,伊朗效率原则专业人士。让我们一起去看电影。我是一名受邀者,他是一名上诉人,也是一名受邀者,他提出上诉的目的是为了保护自己的利益。在自由的氛围中,您可以使用电子设备。中庸之道,我是维德雷尔·萨兰迪·维克斯。该委员会是一个委员会。每一天都有一辆新的哈贝马斯。每一个动作都是非常有效的。Dolor eruditi欧盟eos。在一片静谧的大海中,一头笨重的海豹在一片黑暗中划下了句号。Eam ea modo dolores,具有案件潜伏期法医id.劳登上诉,支持欧里庇迪斯。Vim ut elit utinam ridens,他的面部。我的事业无所不在,我没有时间的本钱,一句名言。他是一个很好的人,他是一个很好的人; //正则表达式模式 //.{250}//250个字符 // .*?\. // 后跟“.”之前的最短字符序列 图案=/.{250}.*.\./g; finalString=originalString.replacepattern,$1\n;
console.logfinalString finalString=orginalString.replace/{250}.*?/g,$1$2.\n'

在这里,我们可能可以这样做,但是它可能不适用于某些点,例如et等,也就是说,您可能希望排除这些点:

(((.+?){0,250})(\s)(.*?)([.\sA-Z]+?))
我们添加了一个正确的边界,以检查这是否是更高概率的句子结尾:

([.\sA-Z]+?)
捕获组还有助于简单地调用所需的输出

正则表达式 如果这不是您想要的表达式,您可以在中修改/更改表达式

正则表达式电路 您还可以在以下位置可视化您的表达式:

JavaScript演示 常量regex=/.+?{0250}\s.*.[.\sA-Z]+?/gm; const str=`Lorem ipsum door sit amet,eu ius everti consequeat instructor,sed modus vitae nostrud cu,ad.principes iracundia efficienti pro。让我们一起去看电影。我是一名受邀者,他是一名上诉人,也是一名受邀者,他提出上诉的目的是为了保护自己的利益。在自由的氛围中,您可以使用电子设备。中庸之道,我是维德雷尔·萨兰迪·维克斯。该委员会是一个委员会。每一天都有一辆新的哈贝马斯。每一个动作都是非常有效的。Dolor eruditi欧盟eos。在一片静谧的大海中,一头笨重的海豹在一片黑暗中划下了句号。Eam ea modo dolores,具有案件潜伏期法医id.劳登上诉,支持欧里庇迪斯。Vim ut elit utinam ridens,他的面部。我的事业无所不在,我没有时间的本钱,一句名言。他是一个很好的朋友,他是一个很好的朋友; 常量subst=`\n$1\n\n`; //被替换的值将包含在结果变量中 const result=str.replaceregex,subst;
console.log'Substitution result:',result 您可以不使用捕获组和使用非贪婪量词来获得匹配

在中,可以使用$&插入匹配的子字符串,后跟换行符\n

.{250}将除换行符以外的任何字符匹配250次 [^.]*匹配0+次非点使用[^.\n]*也排除匹配换行符 \.匹配一个点 让orginalString='Lorem ipsum door坐在amet,eu ius everti consequat Instructor,sed modus vitae nostrud cu,ad.principes iracundia efficienti pro。让我们一起去看电影。我是一名受邀者,他是一名上诉人,也是一名受邀者,他提出上诉的目的是为了保护自己的利益。在自由的氛围中,您可以使用电子设备。中庸之道,我是维德雷尔·萨兰迪·维克斯。该委员会是一个委员会。每一天都有一辆新的哈贝马斯。每一个动作都是非常有效的。Dolor eruditi欧盟eos。在一片静谧的大海中,一头笨重的海豹在一片黑暗中划下了句号。Eam ea modo dolores,具有案件潜伏期法医id.劳登上诉,支持欧里庇迪斯。Vim ut elit utinam ridens,他的面部。我的事业无所不在,我没有时间的本钱,一句名言。他是一个很好的朋友,他是一个很好的朋友 模式=/。{25 0}[^.]+\./gm;
console.logorginalString.replacepattern,$&\n;请在提问之前先尝试一下,因为这是无法解释和未经证实的。如果编辑,将删除下一票。
.{250}[^.]+\.