我目前正在使用CodeMirror,带有javascript,它似乎不支持lookahead或lookbehind。
用户应该在单个函数中编写所有内容,该函数被认为是“根”函数。
举个例子,这是对的:
=FUNCTION(X="t")
这不是:
=FUNCTION(X="t")=()
我需要创建一个匹配“=FUNCTION(...)”之外的所有内容的正则表达式,因此在这种情况下,“=()”不使用lookbehind或lookahead。
期望的结果应该与此匹配:
=FUNCTION(X="t")=()
^^^
=FUNCTION(X="t"()()())=()
^^^
=FUNCTION(X="t"()()())=(()=()
^^^^^^^
=FUNCTION(X="t"()()())=XXXXXX
^^^^^^^
有办法做到吗?
使用捕获组。但如果你的函数体包含内部
)
我们就有麻烦了,我们可能需要一个解析器。
const str = 'prefix =FUNCTION(X="t")=()';
console.log(str.match(/(.+)=FUNCTION\([^)]*\)(.+)/).slice(1));