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

时间:2017-03-07 06:46:36

标签: javascript regex

我很少使用正则表达式,我已经将它用于regex101.com

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

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

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

如何替换背后的外观以便它能正常工作?

这是我要解析的数据:

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

我正试图抽出时间

4 个答案:

答案 0 :(得分:0)

在javascript中没有看后面但是如果你想要提取&#39;您可以使用的所有数据RegExp#exec

&#13;
&#13;
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))
&#13;
&#13;
&#13;

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

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

console.log(data)
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果不使用后面的,可以使用$("input:reset").on("click", function() { this.form.reset(); $('#myCoolForm').attr('disabled', false); $('#save').attr('disabled', false); }); 来获取结果。正则表达式演示:https://regex101.com/r/zbvmfp/1

JavaScript演示

.*\W(\w+)(?:\n|$)

答案 2 :(得分:0)

我认为它写得不比这简单......

var rgx = /\d+[ms]/g;  // capture 1 or more digits followed by m or s
var str = `<100>11m
[RIP]25s
[RIP] 2m
[RIP] 7m
[RIP] 1m
[RIP]12s`;
var res;

while(res=rgx.exec(str)){
    console.log(res[0]);
}

答案 3 :(得分:-1)

Javascript不支持查找。您可以使用正面查找。

正则表达式:/(?=\d+(m|s)).*$/gm

Regex demo