我想判断判断函数 abc 和 cd 是否在cs类中, 也就是嵌套在里面, 下面是gpt帮写的, 问了十几轮都是错的, 求助路过大佬指导, 谢谢
using System;
using System.Text.RegularExpressions;
public class cs
{
public string cd(string s, string rx)
{
//cd
}
public static int abc(string s)
{
//abc
}
}
public static class cc
{
public string gg(string s)
{
//gg
}
public static int zz(string s, string rx)
{
//zz
}
}- $s = @'
- using System;
- using System.Text.RegularExpressions;
-
- public class cs
- {
- public string cd(string s, string rx)
- {
- //cd
- }
-
- public static int abc(string s)
- {
- //abc
- }
- }
-
- public static class cc
- {
- public string gg(string s)
- {
- //gg
- }
-
- public static int zz(string s, string rx)
- {
- //zz
- }
- }
- '@
-
- $functionName = 'abc'
- $pattern = "(?s)^(?:public|private|protected|internal)\s+(?:(?:unsafe\s+)?static|virtual|override|abstract|sealed|extern)\s+(?:\w+\s+)*?" + [regex]::Escape($functionName) + "\s*\([\w\s,]*?\)\s*(?:(?:where|:)\s+[\w\s,:]+)?\s*{\s*`r?\n"
- if ([regex]::IsMatch($s, $pattern))
- {
- Write-Output "函数 $functionName 在类 cs 中"
- }
- else
- {
- Write-Output "函数 $functionName 不在类 cs 中"
- }
-
- $functionName = 'cd'
- $pattern = "(?s)^(?:public|private|protected|internal)\s+(?:(?:unsafe\s+)?static|virtual|override|abstract|sealed|extern)\s+(?:\w+\s+)*?" + [regex]::Escape($functionName) + "\s*\([\w\s,]*?\)\s*(?:(?:where|:)\s+[\w\s,:]*?)?\s*{\s*`r?\n"
- if ([regex]::IsMatch($s, $pattern))
- {
- Write-Output "函数 $functionName 在类 cs 中"
- }
- else
- {
- Write-Output "函数 $functionName 不在类 cs 中"
- }
复制代码
|