javascript - 如何在不使用不支持的后视的情况下编写此正则表达式

标签 javascript regex

我很少使用 Regex,我已经在 regex101.com 上使用它了

但我尝试使用它,它说它不受 JS 支持,这就是我所拥有的

/(?<=[\]|>])(.*?)(?=$|\n)/g

https://regex101.com/r/sxUoDr/1

我如何替换后面的外观才能正常工作?

这是我要解析的数据:

<100>11m
[RIP]25s
[RIP] 2m
[RIP] 7m
[RIP] 1m
[RIP]12s

我在努力抽离时间

最佳答案

在 javascript 中没有回头看,但如果你想“提取”所有数据,你可以使用 RegExp#exec:

const data = `<100>11m
[RIP]25s
[RIP] 2m
[RIP] 7m
[RIP] 1m
[RIP]12s`

const getData = data => {
  const regex = /[ >\]]\s*(.*)/g
  const found = []
  let temp
  while(temp = regex.exec(data)){
    if (temp[1]) found.push(temp[1])
  }
  return found
}

console.log(getData(data))

如果你想替换它,你只需要添加额外选择的字符:

const data = `<100>11m
[RIP]25s
[RIP] 2m
[RIP] 7m
[RIP] 1m
[RIP]12s`.replace(/([ >\]])\s*(.*)/g, '$1 found [$2]')

console.log(data)

关于javascript - 如何在不使用不支持的后视的情况下编写此正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42641915/

相关文章:

javascript - 如何使用 Express 解析查询字符串中的变量?

jquery - 如何使用 javascript 将哈希标签替换为 jquery 数据属性中的链接

javascript - 负数和正数的正则表达式

javascript - 如何集成 Stripe Connect 和 Checkout 产品

javascripts 对象不适用于分配 css 样式

c++ - 正则表达式适用于 Linux 但不适用于 Solaris

regex - PowerShell 正则表达式分组

javascript - 如何从 JavaScript 中的字符串表示形式创建 RegExp?

javascript - 如何在 Controller 外使用 $http?在 AngularJS 中

javascript - 如何在下一个/上一个按钮上垂直滚动 div