gpt4 book ai didi

regex - 在重复元素中捕捉一个项目

转载 作者:行者123 更新时间:2023-12-02 02:01:23 25 4
gpt4 key购买 nike

我想改造这个:

Public [Function|Sub] XXXX(ByVal param1 As aaaa, ByVal param2 AS bbbb) As cccc

进入这个:

Log("Method XXXX:", "param1", param1, "param2", param2)

参数的数量是可变的。

我可以用纯正则表达式来做吗?如果可以,我该怎么做?
我将使用这样一个简单的工具:http://gskinner.com/RegExr/为每种方法手动完成。

我在这里:

Public (Function|Sub) ([\w\d_]+)\((ByVal .* As .*)*\)( As [\w]+)?
Log("Method $2:", $3)

这给了我这个:

Log("Method XXXX:", ByVal param1 As aaaa, ByVal param2 AS bbbb)

这是向前迈出的一小步,但并不是真正的大步......

问题是,我不知道是否(以及如何)可以捕获重复的子项目。其他问题表明这是不可能的?

我需要用纯正则表达式而不是代码来完成。否则,我会使用 copypasta,但我希望最大限度地实现自动化。

谢谢!

最佳答案

这应该适合你:

搜索

/^[^\]]*[\]] ([\w\d_]+)\(ByVal ([^ ]*) As ([^,]*), ByVal ([^ ]*) As ([^,]*)\)( As [\w]+)/gi

替换(用变量值)

Log("Method $2:", $3, "$4", $5)

或(带变量名)

Log("Method $2:", $2, "$4", $4)

例子: http://regexr.com?357f4

编辑

对于循环,您可以尝试 3 个正则表达式。首先会简单地改变你的开始:

搜索

/^[^\]]*[\]] ([\w\d_]+)/gi

替换

Log("Method $1:", 

示例:http://regexr.com?357fp

然后你会做“循环”,虽然不是真正的循环。

搜索

/\({0,1}ByVal ([^ ]*) As([^,\)]*[\)]{0,1})/gi

替换

"$1:", $2

示例:http://regexr.com?357g2

然后删除结尾

搜索

/\).*/gi

替换

)

示例:http://regexr.com?357g5

关于regex - 在重复元素中捕捉一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17091396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com