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我注意到并解决了不捕获括号的缺陷,否则应该包括在内。