Javascript 正则表达式与特殊字符元字符匹配

Javascript 正则表达式与特殊字符元字符匹配,javascript,regex,match,Javascript,Regex,Match,我正在尝试匹配某些字符串,虽然我必须转义一些特殊字符,但仍然无法正确匹配 我有这个 var first=/.+?(?=\[)/i 仍然匹配整个字符串,只需匹配第一个字符串[ 这是字符串业务[帐户] 我需要匹配业务,然后再匹配帐户。这是一个插件,用于以后获取对象符号。每个元素都有一个不同的属性。对于这样简单的东西,实际上不需要前瞻。尝试使用如下字符类: var first = /[^[]+/ 这将匹配除[之外的一个或多个字符 如果您想将其放入一个正则表达式中,该正则表达式可以匹配字符串的两个

我正在尝试匹配某些字符串,虽然我必须转义一些特殊字符,但仍然无法正确匹配

我有这个

 var first=/.+?(?=\[)/i
仍然匹配整个字符串,只需匹配第一个字符串[

这是字符串业务[帐户]


我需要匹配业务,然后再匹配帐户。这是一个插件,用于以后获取对象符号。每个元素都有一个不同的属性。

对于这样简单的东西,实际上不需要前瞻。尝试使用如下字符类:

var first = /[^[]+/
这将匹配除
[
之外的一个或多个字符

如果您想将其放入一个正则表达式中,该正则表达式可以匹配字符串的两个部分,如
“business[account]”
,请尝试以下操作:

/([^[]+)\[([^\]]+)\]/
这将匹配组1中捕获的
[
以外的一个或多个字符,后跟
[
,后跟组2中捕获的
]
以外的一个或多个字符,后跟
]

例如


对于如此简单的内容,实际上不需要进行前瞻。请尝试使用以下字符类:

var first = /[^[]+/
这将匹配除
[
之外的一个或多个字符

如果您想将其放入一个正则表达式中,该正则表达式可以匹配字符串的两个部分,如
“business[account]”
,请尝试以下操作:

/([^[]+)\[([^\]]+)\]/
这将匹配组1中捕获的
[
以外的一个或多个字符,后跟
[
,后跟组2中捕获的
]
以外的一个或多个字符,后跟
]

例如


就快到了;只需添加组(带括号)以匹配所需内容:

var m = /(.+?)\[(.+?)\]/.exec("business[account]");
console.log("variable: " + m[1], "index: " + m[2]);

就快到了;只需添加组(带括号)以匹配所需内容:

var m = /(.+?)\[(.+?)\]/.exec("business[account]");
console.log("variable: " + m[1], "index: " + m[2]);

请尝试
.match(/(\w+)\[(\w+)\]/)
来提取这两个。请尝试
.match(/(\w+)\[(\w+)\]/)
提取两者。我得到一个未终止的group@EasyBB确保你在什么地方没有输入错误。好吧,很好,我不知道为什么,但它现在可以工作了。虽然我应该使用懒惰运算符还是应该使用p.s.w.gOh的正则表达式谢谢编辑;)不确定它是否能像我在手机上说的那样,在我的操作中确保代码语法正确Hahi获得一个未终止的group@EasyBB确保你在什么地方没有输入错误。好吧,很好,我不知道为什么,但它现在可以工作了。虽然我应该使用惰性运算符还是应该使用p.s.w.gOh的正则表达式谢谢编辑;)不确定它是否能像我在手机上说的那样在我的操作中确保代码语法正确hahaClose非常接近,希望它仍然能抓住我的注意力最后一个]好的,我喜欢这个。虽然我不喜欢输出。[“扩展[me],“扩展”,“我”,索引:0,输入:“扩展[me]]@EasyBB您不喜欢它的哪一点?输出有什么问题吗?我想我还是太多了。谢谢。@EasyBB
exec
函数将返回一个包含多个元素的数组。元素0将是整个匹配字符串,1将是第一组,2将是第二组,依此类推。您可以忽略第一个元素,如果您不需要它,甚至不需要它。Close very Close expect它仍然会抓住最后一个]好的,我喜欢这个。虽然我不喜欢输出。[“扩展[me],“扩展”,“我”,索引:0,输入:“扩展[me]]@EasyBB您不喜欢它的哪一点?输出有什么问题吗?我想我还是太多了。谢谢。@EasyBB
exec
函数将返回一个包含多个元素的数组。元素0将是整个匹配字符串,1将是第一组,2将是第二组,依此类推。您可以忽略第一个元素,如果你不需要它,甚至不需要它。