gpt4 book ai didi

javascript - 如何形成正则表达式来匹配 "("之前的所有内容

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

在 javascript 中,如何形成正则表达式来匹配所有不包含左括号“(”的内容?

示例输入:

“12(下午):00”“12(上午):))”“8(上午):00”

我发现 /^(.*?)\(/ 在“up to”部分成功,但返回的匹配包含“(”

在 regex101.com 中,它说第一个捕获组是我正在寻找的,有没有办法只返回捕获的组?

最佳答案

有三种方法可以解决这个问题。第一个是限制匹配的字符不包含括号:

let match = "12(pm):00".match(/[^(]*/);
console.log(match[0]);

第二种是使用捕获组仅获取您感兴趣的匹配部分:

let match = "12(pm):00".match(/(.*?)\(/);
console.log(match[1]);

第三种是使用lookahead从匹配中显式排除括号:

let match = "12(pm):00".match(/.*?(?=\()/);
console.log(match[0]);

与OP中一样,请注意第二种和第三种情况下的非贪婪修饰符:有必要限制量词,以防字符串内部还有另一个左括号。首先这不是必需的,因为明确禁止量词吞噬括号。

关于javascript - 如何形成正则表达式来匹配 "("之前的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60807961/

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