かっこをキャプチャするのに問題があります。
この形式のデータを含む大きなファイルがあります。
I.u[12] = {n: "name1",...};
I.u[123] = {n: "name2",...};
I.u[1234] = {n: "name3",...};
ID(ここ、、 )を指定すると、ファイルから名前(ここ、、、)name1
を取得するのに役立つシステムを作成したいと思います。私は次のコードを持っています:name2
name3
12
123
1234
public static string GetItemName(int id)
{
Regex regex = new Regex(@"^I.u\["+id+@"\]\s=\s{n:\s(.+),.+};$");
Match m= GetMatch(regex,filepath);
if(m.Success) return m.Groups[0].Value;
else return "unavailable";
}
public static Match GetMatch(Regex regex, string filePath)
{
Match res = null;
using (StreamReader r = new StreamReader(filePath))
{
string line;
while ((line = r.ReadLine()) != null)
{
res = regex.Match(line);
if (res.Success) break;
}
}
return res;
}
正規表現はファイル内で正しい行を見つけますが、なぜそれが私が望むように名前を抽出しないのか本当にわかりません、そして、
if(m.Success) return m.Groups[0].Value;
m.Groups[0]
名前ではなくファイルの行全体が返されます...に変更しても、多くのことを試しましたm.Groups[1]
が、機能しませんでした。
私は今、成功せずに一瞬検索しました。何が悪いのか分かりますか?