我目前使用CodeMirror,带有JavaScript,似乎不支持lookahead或lookbehind。我可以只提供一个RegEx给CodeMirror,不需要任何代码,它会高亮显示匹配的内容。
用户应该在一个函数中编写所有内容,这个函数被认为是“根”函数。
例如,这是正确的:
=FUNCTION(X="t")
字符串
而这不是:
=FUNCTION(X="t")=()
型
我需要创建一个正则表达式来匹配“=FUNCTION(...)"之外的所有内容,因此在此上下文中,“=()”不使用lookbehind或lookahead。
所需的结果应与以下内容匹配:
=FUNCTION(...)=()
^^^
=FUNCTION(X="t")=()
^^^
=FUNCTION(X="t"()()())=()
^^^
=FUNCTION(X="t"()()())=(()=()
^^^^^^^
=FUNCTION(X="t"()()())=XXXXXX
^^^^^^^
=FUNCTION(X="t"""()()())=XXXXXX
^^^^^^^
=FUNCTION(X="t"""()()(), X()="b")=XXXXXX
^^^^^^^
有办法做到吗?
1条答案
按热度按时间7rtdyuoh1#
使用捕获组。对于内部括号,使用可选的非捕获组:
(.*)
-函数之前的任何内容,如果不需要,请删除=FUNCTION\(
-函数声明[^()]*
-函数中第一个括号之前的任何内容(?:.*\([^()]*\))*
-任意数量的匹配圆括号和闭合圆括号之间的任何内容。[^()]*
-函数的右括号之前的任何内容\)
-右括号(.*)
-函数后的任何内容字符串