Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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_Regex - Fatal编程技术网

Javascript 正则表达式提取括号内容

Javascript 正则表达式提取括号内容,javascript,regex,Javascript,Regex,我需要一个正则表达式来获取RegExp的参数,而无需解析代码 RegExp(/a+b/) Output: /a+b/ RegExp(/a+b/, 'g') Output: /a+b/, 'g' 我提出了以下正则表达式: (?:RegExp)\((.*)\) 它适用于大多数示例,但在某些情况下(例如,小型化、单行JavaScripts、包含括号的正则表达式)会失败: 这显然是因为找到了匹配的右括号。有解决方法吗?试试这个正则表达式: /.*RegExp\((\"(?:.+?)\"

我需要一个正则表达式来获取
RegExp
的参数,而无需解析代码

RegExp(/a+b/)       Output: /a+b/
RegExp(/a+b/, 'g')  Output: /a+b/, 'g'
我提出了以下正则表达式:

(?:RegExp)\((.*)\)
它适用于大多数示例,但在某些情况下(例如,小型化、单行JavaScripts、包含括号的正则表达式)会失败:

这显然是因为找到了匹配的右括号。有解决方法吗?

试试这个正则表达式:

/.*RegExp\((\"(?:.+?)\"|\/(?:.+?)\/.*)\).*/gmi
在此处查看并测试它:

尝试此正则表达式:

/.*RegExp\((\"(?:.+?)\"|\/(?:.+?)\/.*)\).*/gmi

在这里查看并测试:

使用惰性量词:
(.*)
而不是
(.*)
如果正则表达式包含括号怎么办?这是否回答了您的问题?对于此问题,RegExp不是正确的解决方案。理论上,在regex中可以有尽可能多的开始和结束参数,因此使用正则表达式解决此问题不可能总是正确的。请使用惰性量词:
(.*)
,而不是
(.*)
如果正则表达式包含括号怎么办?这是否回答了您的问题?RegExp不是解决这个问题的正确方法。理论上,在regex中可以有尽可能多的开始和结束参数,因此,您在这个问题上使用正则表达式不可能总是正确的。@GRoutar我注意到并解决了不捕获括号的缺陷,否则应该包括在内。@GRoutar我注意到并解决了不捕获括号的缺陷,否则应该包括在内。