Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式,以匹配包含除某些字符串以外的某些字符串的模式_Javascript_Jquery_Regex_Html - Fatal编程技术网

Javascript 正则表达式,以匹配包含除某些字符串以外的某些字符串的模式

Javascript 正则表达式,以匹配包含除某些字符串以外的某些字符串的模式,javascript,jquery,regex,html,Javascript,Jquery,Regex,Html,我有如下字符串: var string = "'abc'+@VAL([Q].[F1 w1 w1 w1])+ 'hellllllllllo'+@VAL([Q].[F2 w]) +'anything'+@VAL([Q].[F3 w])+anything"; 我想匹配以下模式 @VAL([Q].[F1 w1 w1 w1]) @VAL([Q].[F2 w]) @VAL([Q].[F3 w]) 实际上,我想匹配一个字符串模式,以@VAL(开始,以结束) 我已尝试使用以下代码: var patt

我有如下字符串:

var string = "'abc'+@VAL([Q].[F1 w1 w1 w1])+ 'hellllllllllo'+@VAL([Q].[F2 w]) +'anything'+@VAL([Q].[F3 w])+anything";
我想匹配以下模式

@VAL([Q].[F1 w1 w1 w1])
@VAL([Q].[F2 w]) 
@VAL([Q].[F3 w])
实际上,我想匹配一个字符串模式,以@VAL(开始,以结束) 我已尝试使用以下代码:

   var patt1 = /@VAL\((.*)\)/g;

   var myPattern = string.match(patt1);
并得到以下结果

@VAL([Q].[F1 w1 w1 w1])+ 'hellllllllllo'+@VAL([Q].[F2 w]) +'anything'+@VAL([Q].[F3 w])

我无法解决它需要帮助

您的正则表达式太贪婪,请使用基于否定的正则表达式:

var patt1 = /@VAL\(([^)]*)\)/g;
或者干脆让它变懒:

var patt1 = /@VAL\((.*?)\)/g;


var m = string.match(patt1);
//=> ["@VAL([Q].[F1 w1 w1 w1])", "@VAL([Q].[F2 w])", "@VAL([Q].[F3 w])"]

这将返回所有匹配项:

result = subject.match(/@VAL\([^)]*\)/g);

  • @VAL\(
    匹配
    @VAL(
  • [^)]
    匹配一个非
  • *
    量词会重复零次或多次
  • *\)
    匹配右括号