gpt4 book ai didi

可选包装器的 JavaScript RegExp 和只有一个记住的部分?

转载 作者:行者123 更新时间:2023-11-30 00:14:50 26 4
gpt4 key购买 nike

所以,我希望我的 RegExp 匹配 word[word](事实上,一些其他的东西,但这不是重点),但不是[wordword]。一个简单的方法是使用

var re = /^(\w+)|(?:\[(\w+)\])$/;

RegExp,但根据匹配的变体,我将在 match[1]match[2] 中获取 word >(我的意思是,var match = re.exec(text);)。我的问题是:是否可以编写这样一个 RegExp 以匹配我需要的内容,但结果将始终在 match[1] 中并且 中没有其他“插槽”使用匹配

一个例子:对于像 ''word'' 这样的“对称”包装器,这可以使用 \1 表达式来完成:

var re = /^(\'{0,2})(\w+)\1$/;

这将同时匹配 ''word''word,但不匹配 ''wordword''。但是这个技巧是可行的,因为包装器的开始部分与结束部分相同,而 [word]...

则不是这种情况

最佳答案

我的解决方案是:

var re = /^((?:\[\w+\])|(?:\w+))$/;

它过滤 [word] 以及 word 并且只填充匹配项的第一个槽位。测试:

re.exec('foo'); // ['foo', 'foo']
re.exec('[foo]'); // ['[foo]', '[foo]']
re.exec('foo]'); // null
re.exec('[foo'); // null

关于可选包装器的 JavaScript RegExp 和只有一个记住的部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132331/

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