如何通过正则表达式匹配带func关键字的函数名及所有参数
正则修改需求
我当前编写的正则表达式可在不捕获函数名的情况下匹配所有函数参数,代码如下:
(?<=\(|\,)\s*([a-zA-Z]+)\s*(?=\:|\s*)
现需新增匹配约束:仅当代码段存在func关键字时,才匹配对应函数的函数名及其所有参数,请问该如何修改正则实现该需求?匹配预期可参考示例截图。
当前调试进展
目前基于@tukan提供的方案调试,使用的正则代码如下:
((?<=func\s)\w+)|(\w+(?=:))
本次调试使用的测试文本覆盖多类函数书写格式,具体内容如下:
func foo(a: Int, b: String = "myStr", c: Double) func foo(a s1: Int, b s2: String = "myStr", c: Double = 1.0) func foo(a: Int, b: String, c: Double = 3343) func foo()
当前正则的实际匹配效果可参考对应截图。
内容的提问来源于stack exchange,提问作者Hassan Taleb
相关产品推荐
相关产品推荐

