gpt4 book ai didi

javascript - 正则表达式 : Using an anchor with positive lookbehind

转载 作者:行者123 更新时间:2023-11-29 17:45:57 24 4
gpt4 key购买 nike

正则表达式在开头锚定后向后看似乎不起作用。有人知道为什么吗?

例如下面的代码返回 null。

const str = "foo:25"
const regex = new RegExp(/^(?<=foo:)\d+/);
console.log(regex.exec(str));

编辑:我知道如何让它发挥作用。我在问为什么这个特定的正则表达式不匹配。

最佳答案

^(?<=foo:)\d+ 的问题模式是^匹配字符串的开头和 (?<=foo)如果没有 foo,lookbehind 匹配失败紧靠当前位置的左侧 - 并且在字符串开头之前没有文本。

您可以将其修复为

const regex = new RegExp(/(?<=^foo:)\d+/);

在这里,(?<=^foo:)后视检查 foo在字符串的开头,但测试自 ^ 以来字符串中的每个位置不再是消费模式的一部分。

在 JS 中,为了更好的跨浏览器可移植性,你最好使用捕获组而不是正向后视(而且,你可以直接使用正则表达式文字表示法,不需要使用 /.../ 和构造函数表示法):

var str = "foo:25"
var regex = /^foo:(\d+)/;
console.log(regex.exec(str)[1]);

关于javascript - 正则表达式 : Using an anchor with positive lookbehind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49746886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com