0

私は正規表現が初めてです。指定子、型(抽象、静的)、およびその基本クラスを含むすべてのクラスを見つける正規表現コードを作成する必要があります。

私の Customer.cs ファイルに次のコードがあるとしましょう

 internal class Customer
{
 //stuff
}
public class XYZ : Customer
    ,IServiceProvider
{
    private class Order
    {
 //stuff
    }
}

public abstract class ABC
{ 
     //stuff
}
public static class ABC1
{ 
     //stuff
}

正規表現によって次の形式ですべてのクラス名を取得するにはどうすればよいですか

internal class Customer
 public class XYZ : Customer
        ,IServiceProvider
private class Order
public abstract class ABC
public static class ABC1

この目的でリフレクションを使用することはできません。

前もって感謝します

4

4 に答える 4

1

次の正規表現を検討してください...

.*?\sclass\s[\S\s]*?(?={)
于 2013-11-08T19:35:40.257 に答える
1

正規表現は次を処理する必要があります。

  1. たとえば、静的、封印された、または抽象的で、プライベート、内部またはパブリックであるという事実は、存在する場合と存在しない場合があり、任意の順序である可能性があります。
  2. コード内で @class 変数が誤って検出される場合があります。
  3. 一致させようとしているパターンは、多くの行にまたがっている可能性があります。

このような正規表現を作成することは可能かもしれませんが、できたとしても途方もなく複雑で信頼性に欠けるでしょう。非正規文法内のものを見つけようとしているため、正規表現は解決策ではありません。適切な文法パーサーが必要です。

于 2013-11-08T09:37:46.513 に答える