正则匹配字符串出现的位置

发布于 2022-09-11 15:06:55 字数 347 浏览 6 评论 0

一段文字里多次出现一个重复的字符串,请问下如何拿到这个重复字符串每次出现的位置呢?

有木有正则办到的方法勒?

这是一插入位置{08}个66插入位置{08}66插入位置{16}66

比如上面这段字符串

我想要的就是插入位置{08}每次出现的位置
比如上面的字符串需要拿到以下结果
原文:这是一个666666
出现字符串: [{text: '插入位置{08}', index: 3, order: 1}, {text: '插入位置{08}', index: 6, order: 2}, {text: '插入位置{16}', index: 8, order: 3}]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

因为看清所以看轻 2022-09-18 15:06:55
    let reg = /插入位置\{08\}/g
    let str = '这是一插入位置{08}个66插入位置{08}66插入位置{16}66'
    let order = 1
    let result = []
    while (true) {
      let temp = reg.exec(str)
      if (temp) {
        result.push({
          text: temp[0], index: temp.index, order: order
        })
        order++
      } else {
        break
      }
    }
    console.log(result)
变身佩奇 2022-09-18 15:06:55

RegExp的exec方法可以
例如:

var reg = new RegExp(/66/g)
reg.exec('666666') // ["66", index: 0, input: "666666", groups: undefined]
reg.exec('666666') // ["66", index: 2, input: "666666", groups: undefined]
reg.exec('666666') // ["66", index: 4, input: "666666", groups: undefined]
reg.exec('666666') // null
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文