用下面的方法仍然不行- $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
- }
- }
- '@
-
- $className = 'cs'
- $functionName = 'abc'
- $pattern = "(?s)(?<=\bclass\s+$className\s*\{)[^}]*?(?<=\bfunction\s+$functionName[\s\n]*\()([\w\s,]*)[\)]"
- $match = [regex]::Match($s, $pattern)
- if ($match.Success)
- {
- Write-Output "函数 $functionName 在类 $className 中"
- }
- else
- {
- Write-Output "函数 $functionName 不在类 $className 中"
- }
-
- $functionName = 'cd'
- $pattern = "(?s)(?<=\bclass\s+$className\s*\{)[^}]*?(?<=\bfunction\s+$functionName[\s\n]*\()([\w\s,]*)[\)]"
- $match = [regex]::Match($s, $pattern)
- if ($match.Success)
- {
- Write-Output "函数 $functionName 在类 $className 中"
- }
- else
- {
- Write-Output "函数 $functionName 不在类 $className 中"
- }
复制代码
|