コメント付きのキーと値のペアを取得するには、iOS の *.strings ファイルを解析する必要があります。例えば:
/* comment */
"key" = "value";
行を見つけてその有効性を確認したら (私はすでにそれを行うことができました)、その行とその直前のコメントをキャプチャする必要があります。
難点は次のとおりです。
- すべての行の前にコメントがあるわけではないため、/* で始まりセミコロンで終わるブロック全体をキャプチャすることはできません。
- 以下の行にコメントがある可能性がありますが、この行は無効な形式である可能性があるため、コメントとともにスキップする必要があります。
そのため、キーと値の行を検出し、コメントが存在する場合はそれを確認する必要があります。
正規表現は逆行できますか?
PS私は.NET Frameworkを使用して解析しています:
string[] lines = File.ReadAllLines(fileName);
foreach (string line in lines)
{
string[] kvp = Regex.Split(line, "\"\\s+?=\\s+?\"");
if (kvp.Length == 2 && kvp[0].StartsWith("\"") && kvp[1].EndsWith("\";"))
{
DataRow row = table.NewRow();
row["name"] = kvp[0].TrimStart('"');
row["text"] = kvp[1].Substring(0, kvp[1].Length - 2);
row["fileId"] = fileId;
table.Rows.Add(row);
}
}