如何用正则匹配数字开头的段落数据?

像获取到后台这种的数据

  1. 粒粒皆辛苦,是的房间散发甲方的。2. 粒粒皆辛苦,是的房间散发甲方的。3. 粒粒皆辛苦,是的房间散发甲方的。4. 粒粒皆辛苦,是的房间散发甲方的。

在前端要展示出:

  1. 粒粒皆辛苦,是的房间散发甲方的。
  2. 粒粒皆辛苦,是的房间散发甲方的
  3. 粒粒皆辛苦,是的房间散发甲方的
  4. 粒粒皆辛苦,是的房间散发甲方的

请问各位大佬如何对于这种段落式的如何用正则匹配出来呢?(用的正则不熟悉,没成功....)

阅读 4.2k
5 个回答

clipboard.png

 "1.粒粒皆辛苦,是的房间散发甲方的。2. 粒粒皆辛苦,是的房间散发甲方的。
3. 粒粒皆辛苦,是的房间散发甲方的。4. 粒粒皆辛苦,是的房间散发甲方的。"
.split(/\d+\./).map(function(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); })

再把空串去掉就行了.
var str = '1.粒粒皆辛苦,是的房间散发甲方的。2. 粒粒皆辛苦,是的房间散发甲方的。3. 粒粒皆辛苦,是的房间散发甲方的。4. 粒粒皆辛苦,是的房间散发甲方的。';
var reg = /\d[^\d]*/g
while(result = reg.exec(str)) {
    console.log(result[0])
}

直接用match匹配出一个结果数组即可:

var str = '1.粒粒皆辛苦,是的房间散发甲方的。2. 粒粒皆辛苦,是的房间散发甲方的。3. 粒粒皆辛苦,是的房间散发甲方的。4. 粒粒皆辛苦,是的房间散发甲方的。';

const result = str.match(/(\d[^\d]*)/g)

一句就好了。

str.replace(/[^^](\d+\.)/g, '\n$1');
text.replace(/(?!^)(?=(\d\.))/g, '\n')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题