Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式Javascript匹配所有_Javascript_Regex - Fatal编程技术网

正则表达式Javascript匹配所有

正则表达式Javascript匹配所有,javascript,regex,Javascript,Regex,我有一根绳子 var str='[match1] text [match2] [match3] text'; 我需要用[]附上的所有单词 结果应该是match1、match2、match3 我尝试了str.match(/\[([^]]+)\]/)什么是正确的正则表达式 str.match(/[^\[\]]+(?=])/g) 应该在[和]正确配对且不嵌套时执行此操作 您需要匹配正确类型的括号,并使用g标志使regexp全局化,以便它返回所有匹配项 此外,我还使用了一个向前看来标识带括号的组的结

我有一根绳子

var str='[match1] text [match2] [match3] text';
我需要用[]附上的所有单词

结果应该是
match1、match2、match3

我尝试了
str.match(/\[([^]]+)\]/)什么是正确的正则表达式

str.match(/[^\[\]]+(?=])/g)
应该在
[
]
正确配对且不嵌套时执行此操作

您需要匹配正确类型的括号,并使用
g
标志使regexp全局化,以便它返回所有匹配项

此外,我还使用了一个向前看来标识带括号的组的结尾,因为match将返回整个匹配的文本,而不是捕获的组


屈服

["match1","match2","match3"]
这应该起作用:

str.match(/\[[^ \]]+]/g)

这将在括号中匹配,但创建不带括号的捕获?惰性量词只会获取每个[]对中的内容。

为什么您的字符集匹配除
}
之外的所有内容,而不是除
]
之外的所有内容?这是一个输入错误。修复了缺少
g
标志?尝试转义]?([^\]]+)还是自动格式化隐藏了它?(就像它刚才对我做的那样,必须放两个\才能显示1)
str.match(/\[[^ \]]+]/g)
str.match(/[^[]+?(?=\])/g);