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

时间:2011-12-07 21:33:12

标签: javascript regex

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

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

即使使用'\[.?*\]'

,输入\ [ \ ]对我也不起作用

谢谢!

3 个答案:

答案 0 :(得分:2)

试试这个:

var myregexp = /\[(.*?)\]/;
var match = myregexp.exec(subject);
if (match != null) {
    result = match[1];
}

[]的内容将由反引用$1捕获。在进行此类提取时,请使用 lazy quantifier 。否则,如果您有两组括号:

[asdfjhasdf][asdfafas]您只能从第一个[到最后一个]

获得其中一个

答案 1 :(得分:1)

\[(.*)\] 效果很好,不要在\之后和[之前使用空格,例如。 \ [因为这不会那样。

答案 2 :(得分:1)

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

http://jsfiddle.net/ePjKM/1

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