gpt4 book ai didi

javascript - 使用正则表达式匹配独立的 a1 值

转载 作者:行者123 更新时间:2023-11-28 07:33:33 25 4
gpt4 key购买 nike

给定以下字符串,如何使用正则表达式匹配所有独立的 a1 值(用于替换):

a1 +a1 +a1:a10 + b1 + c1:d10 + a1:a1 +a1+ a1 + a1

即a1:a10、b1、c1:d10、a1:a1 不应匹配。人们应该假设一种场景,其中字符串是动态的并且可以改变,具有不同的范围。

所需的匹配输出:a1,a1,a1,a1,a1。 “独立”意味着它没有“:”,例如a1:a1 不是独立的。不接受匹配 +a1 或 [空格]a1。

在我的努力中,最大的问题是消除 a1:a1 和 a1:a10,因为 javascript 不支持负向后查找。

请注意:有些 a1 前面/后面有空格,有些则没有,例如+a1+ 这应该仍然匹配。我们还应该假设其他运算符,例如 *a1+

您可以在这里看到我不完整的尝试:http://regexr.com/3ahpl 。 <- 我的示例错误地匹配了 a1:a10 和 a1:a1 中的 a1,否则它就达到了我想要的效果。

最佳答案

假设您将所有这些 a1 替换为 foo,您可以使用:

var input = 'a1 +a1 +a1:a10 + b1 + c1:d10 + a1:a1 +a1+ a1 + a1 pa1';    
var re = /(^|[^:]\b)a1\b(?!:)/g;
var arr=[];

while (m = re.exec(input)) { arr.push(m[1]); }

console.log ( arr );
["a1", "a1", "a1", "a1", "a1"]

RegEx Demo

关于javascript - 使用正则表达式匹配独立的 a1 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28852975/

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