Javascript 正则表达式匹配-括号内的内容
这是一个快速的问题,我只是不知道很多正则表达式技巧,也找不到关于这一点的文档: 假设我有字符串:Javascript 正则表达式匹配-括号内的内容,javascript,regex,Javascript,Regex,这是一个快速的问题,我只是不知道很多正则表达式技巧,也找不到关于这一点的文档: 假设我有字符串: 'I know [foo] and [bar] about Regex' 我想做一个JS正则表达式模式,它生成每个括号封装的数组。结果: ['[foo]', '[bar]'] 我目前有: str.match(/\[(.*)\]/g); 但这也带来了: '[foo] and [bar]' 谢谢。试试看 var array = 'I know [foo] and [bar] about Rege
'I know [foo] and [bar] about Regex'
我想做一个JS正则表达式模式,它生成每个括号封装的数组。结果:
['[foo]', '[bar]']
我目前有:
str.match(/\[(.*)\]/g);
但这也带来了:
'[foo] and [bar]'
谢谢。试试看
var array = 'I know [foo] and [bar] about Regex'.match(/(\[[^\]]+\])/g)
试一试
改用这个:
var str = 'I know [foo] and [bar] about Regex';
str.match(/\[([^\[\]]*)\]/g);
您的正则表达式部分错误,因为(.*)
,这使得您的模式允许介于[
和]
之间的任何字符,其中包括[
和]
,请改用此选项:
var str = 'I know [foo] and [bar] about Regex';
str.match(/\[([^\[\]]*)\]/g);
str.match(/\[(.*?)\]/g);
您的正则表达式部分错误,因为(.*)
,这使得您的模式允许介于[
和]
之间的任何字符,其中包括[
和]
str.match(/\[(.*?)\]/g);
使用?
修饰符使*
量词不贪婪。非贪婪量词将匹配可能的最短字符串,而不是默认的最长字符串
使用?
修饰符使*
量词不贪婪。非贪婪量词将匹配最短的字符串,而不是最长的字符串,这是默认值。请改用这个:
\\[[^\\]]+\\]
您的正则表达式部分错误,因为(.*)
,这使得您的模式允许[
和]
之间的任何字符,其中包括[
和]
,请改用此选项:
str.match(/\[(.*?)\]/g);
\\[[^\\]]+\\]
您的正则表达式部分错误,因为(.*)
,这使得您的模式允许[
和]
之间的任何字符,其中包括[
和]
这看起来非常像一年前的答案。这看起来非常像一年前的答案。
str.match(/\[(.*?)\]/g);