正则表达式:匹配一个模式但排除部分模式

3
我正在努力想出如何从以下示例中排除我的匹配项:
myJavascriptArray(["foo","bar"]);

我可以轻松地匹配字符串,使用以下代码:

myJavascriptArray\(.+\);

我只需要["foo","bar"]这一部分。

使用以下代码可以忽略myJavascriptArray这一部分:

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

但是我完全不知道该怎么办!

1个回答

3

您可以使用:

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

或者要进行安全保障:

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

这是将感兴趣的值捕获到一个组中,然后在输出数组中使用该组。

我应该说 - 我实际上不会使用JavaScript,而是Ruby,但匹配看起来像是有效的,非常感谢。 - squarefrog
是的,类似的概念也适用于Ruby或任何其他编程语言。 - anubhava

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