[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
Set re = New regexp
re.pattern = "public class cs\n{.*?({.*}.*)*}"
re.multiline = True
re.ignorecase = True
cs = re.execute([yourc#code])(0)
If InStr(cs,"public string cd") <> -1 Then
    MsgBox "cd is in cs"
End If
If InStr(cs,"public int abc") <> -1 Then
    MsgBox "abc is in cs"
End If
成不成?

TOP

回复 3# 小白龙


    换个vb.net吧 那就不用平衡组了[doge]

TOP

给你出个主意 先写个c#缩进脚本 设置好缩进 然后就不用平衡组 可以依靠每条语句前面的空格来判断

TOP

缩进很好写的 随便拉来个人都行
这种类c的语言找到一一对应的很烦 但是缩进好写的不得了

TOP

回复 8# 小白龙


    难点不就是在匹配大括号对吗 所以才要什么平衡组,栈希希的
所以你就加缩进 把每一行的“级别‘标在开头

TOP

本帖最后由 jyswjjgdwtdtj 于 2023-5-22 22:16 编辑

来个很low的
f = False
j = ""
For Each i In Split(code,vbCrLf)
If i = "public class cs" Then
f = True
j = i
Else
j = j + vbCrLf + i
If f = True And i = "}" Then Exit For
End If
Next
If InStr(j,"public string cd(") > -1 Then MsgBox "cd在cs里"

如果你的缩进做的很好的话……

TOP

返回列表