【发布时间】:2017-08-16 16:37:08
【问题描述】:
大约一个月前,我想组织我所有的 javascript 函数以按字母顺序排列它们,而今天我正在玩一个正则表达式,这让我再次想到了这一点。我只想匹配外部函数以避免嵌套函数被移动并且我认为几乎已经有了它,但是我缺少一些东西。
我在此页面上使用了泡泡泡泡的答案作为起点。 Regular Expression to match outer brackets
function\s.*\(.*\).*\{(?>[^.*\n*]+|(?R))*\}
这将匹配所有函数定义并捕获直到第一个花括号的参数。出于某种原因,当它是表达式的一部分时,我无法让它与换行符模式 [^.*\n*]+ 匹配,但当它完全单独时,它匹配得很好。
我使用 Sublime 文本编辑器作为我的搜索工具,但它最终会出现在一个 JS 文件中,这可能是一种操作代码的简单方法。
【问题讨论】:
-
“按字母顺序排列”——这真是个糟糕的主意。订单必须是语义驱动的。无论如何,如果你想正确地解决它 - 使用任何 JS 语法解析器,它会更容易和更可靠 100 倍。
-
您将不得不寻找新的线路。
\nfunction.*?\n\}这可能是它...
标签: javascript regex pcre