【发布时间】:2016-05-09 17:43:41
【问题描述】:
我正在尝试替换名称为“eventHandler”或以“...EventHandler”结尾的所有事件处理函数,以封装在一个公共事件处理函数中,该函数在实际调用事件之前执行附加任务处理程序。
简而言之,我正在尝试使用查找和替换中的正则表达式(在 sublime 文本编辑器中)执行此操作:
loginEventHandler(args, callback) => processEventHandler(loginEventHandler, args, callback)
[查找]
(eventHandler|(?!processEventHandler)\w+EventHandler)((.*))
[替换]
processEventHandler($1, $2)
这没有按预期工作。该查找也匹配 rocessEventHandler 。如果函数名称为“processEventHandler”,如何忽略匹配函数?
我尝试了以下问题中提到的解决方案,但没有帮助。
Regular expression to match line that doesn't contain a word?
A regular expression to exclude a word/string
这是测试结果:
【问题讨论】:
-
您正在使用不支持 Boost 正则表达式语法的正则表达式测试器。使用带有 PCRE 的 regex101 作为 regex falvor。另外,请在问题本身中发布示例文本。
-
这里是示例文本: loginEventHandler(err, result) processEventHandler(loginEventHandler, err, result) eventHandler(err, result) appInitEventHandler(err, result) initProcessEventHandler(err, result) initprocessEventHandler(err,结果)通用(e,r)
-
这个怎么样:regex101.com/r/dP7zD8/1?
-
@AnkitMishra 不能使用 ^,因为函数不会位于字符串的开头。例如:return someEventHandler(e, r);
标签: javascript regex sublimetext2 sublimetext3 sublimetext