0

C# ソース ファイルを読み込んでいます。文字列に遭遇したら、その値を取得したいと思います。
たとえば、次の例では:

public class MyClass
{
  public MyClass()
  {
    string fileName = "C:\\Temp\\A Weird\"FileName";
  }
}  

回収したい

C:\Temp\A Weird"FileName

それを行うための既存の手順はありますか?
考えられるすべてのケースでソリューションをコーディングするのは非常に難しいはずです (@、エスケープ シーケンスなど)。
私はそのような手順が存在すると確信しています...
二重機能も持ちたいです(C#ソースファイルに文字列を挿入するため)

前もって感謝します。
フィリップ

PS:
ファイル名の例を挙げましたが、あらゆる種類の文字列で機能するソリューションを探しています。

4

3 に答える 3

2

CodeDOM を使用して C# コード ファイルを読み取り、その要素を解析できると確信しています。コード ツリーが生成され、 を表すノードを探すことができますstrings

http://www.codeproject.com/Articles/2502/C-CodeDOM-parser

その他の CodeDom パーサー:

http://www.codeproject.com/Articles/14383/An-Expression-Parser-for-CodeDom

NRefactory: https://github.com/icsharpcode/NRefactoryおよびhttp://www.codeproject.com/Articles/408663/Using-NRefactory-for-analyzing-Csharp-code

于 2013-09-12T10:30:43.453 に答える
0

正規表現を使用".*"してすべての文字列値を照合し、末尾の逆コンマを削除してエスケープ解除します。

これにより\"""文字列内の文字が許可されます

したがって、"C:\\Temp\\A Weird\"FileName"との両方"Hello ""World"""が一致します

于 2013-09-12T10:30:51.063 に答える