2014-03-06 119 views
3

我竭力要弄清楚如何从下面的示例排除我比赛的一部分:正则表达式:匹配的模式,但不包括模式

myJavascriptArray(["foo","bar"]); 

我可以匹配字符串没有问题:

myJavascriptArray\(.+\); 

真的,我要的只是["foo","bar"]部分。

我可以用忽略myJavascriptArray部分:

(?!myJavascriptArray)\(.+\); // matches (["foo","bar"]); 

但后来我完全失去了!

回答

3

您可以使用:

string.match(/myJavascriptArray\((.+?)\)/)[1]; 

或者维护:

var m = string.match(/myJavascriptArray\((.+?)\)/); 
var myval = m ? m[1] : ""; 

此拍摄一组感兴趣的值,并使用该组输出数组英寸

+0

我应该说 - 我实际上不会使用JavaScript,它会是Ruby,但是这个比赛看起来很有用,非常感谢。 – squarefrog

+0

是的,类似的概念也适用于ruby或任何其他语言。 – anubhava