このような関数のリストから関数全体をキャプチャするために、.NET で正規表現を作成しようとしています。
public string Test1()
{
string result = null;
foreach(var item in Entity.EntityProperties)
{
result +=string.Format("inner string with bracket{0}", "test");
}
return result;
}
public string Test5()
{
return string.Format("inner string with bracket{0}", "test");
}
public string Last()
{
return string.Format("inner string with bracket{0}", "test");
}
だから私は得た
((?<function>public string (?<fName>\w+)\(\)\s*{.*?})(?=\s*public string))
これにより、最後の関数を除くすべてがキャプチャされます...またはこれ
((?<function>public string (?<fName>\w+)\(\)\s*{.*?})(?=\s*(public string)|$))
これにより、最初の関数を除くすべての関数が正しく一致します。最初の関数は部分的にしか一致しません。
public string Test1()
{
string result = null;
foreach(var item in Entity.EntityProperties)
{
result +=string.Format("inner string with bracket{0}", "test");
} <-- the first capture only get to this point.
何か案が?可能であれば、いくつかの説明を提供してください。