如何使用正则表达式从方括号中获取内容?

3

如何使用正则表达式从方括号中提取内容?以JavaScript为例:

var str ='1.2.3.4 - - [01/Dec/2011:11:14:42 -0800]'
var result = str.match('\[.?*\]');

对我来说,使用输入'\[.?*\]'即使使用\ [ \ ]也无法正常工作。

谢谢!

3个回答

2

试试这个:

var myregexp = /\[(.*?)\]/;
var match = myregexp.exec(subject);
if (match != null) {
    result = match[1];
}
[]的内容将被回溯引用$1捕获。在进行这种提取时,请使用惰性量词。否则,如果您有两组括号:[asdfjhasdf][asdfafas],则只会从第一个[到最后一个]中获取其中一个。

1

\[(.*)\]非常好用,不要在\[之间加空格,例如\ [,因为这样不起作用。


1

有两个问题。首先,您需要将正则表达式包装在//中。其次,将那个?移动。

http://jsfiddle.net/ePjKM/1

var result = str.match(/\[.*?\]/);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接