正则表达式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);