我正在尝试扫描一个JavaScript文档,该文档在其中定义了许多函数,并从文档中删除了一个函数。我希望我能在这里做一个简单的正则表达式技巧。
示例:
一些JavaScript文档:
function wanted_foo(bar) {
...
...
}
function unwanted_foo(bar) {
...
inner_foo {
...
...
}
}
function wanted_foo(bar) {
...
...
inner_foo {
...
...
}
}
这里显而易见的问题是我需要匹配“function unwanted_foo(bar) { ... }
”形式的东西,除了我只需要匹配函数的最后一个大括号,而不是下一个大括号另一个功能。有一个简单的正则表达方式吗?
答案 0 :(得分:1)
正常的正则表达式不能这样做,因为它们不能保持先前匹配的大括号的计数,因此无法找到最后一个,但是似乎许多实现具有超出正常正则表达式的功能,而Ruby是其中之一那些案件。
野兔是关于这一点的几个参考,虽然它可能不是你所说的简单。
答案 1 :(得分:0)
一个“技巧”是将计数器与正则表达式一起使用。
/^\s*function\s+\w+\(.*\)\s*\{
形式的内容,当您找到此模式时,请记住该位置。{
和}
匹配,根据您找到的内容递增或递减您的计数器。希望这对你有用吗?