0

別の正規表現の質問...

C# プロジェクト ファイル内のすべての強力なリソース リンクを新しい翻訳システムの呼び出しに置き換えるプロジェクトがあります。

次の 2 行については、最初の行だけを取得する必要があります。つまり、ResourceManager 呼び出しを除外したいということです。

Resources.SomeGlobalResxFile.SomeKey
Resources.SomeGlobalResxFile.ResourceManager //mostly followed with GetString

次の正規表現を作成しました。これはうまく機能しますが、残念ながら ResourceManager が含まれています

//"Resources" must have no alfa or dot character before them -> [^\w\.]
//The link is consisted of a global key (the first parenthesis linking 
//the RESX file) and the resource key
[^\w\.]Resources\.(?<global_key>\w+)\.(?<key>\w+)

私が必要としている (または私が必要だと思うもの) は、否定的な先読みです...これらの否定的/肯定的な先読み/後読みは、それらを正しく配置する方法がわからないため、それらが必要であることに気付くたびに頭痛の種になります...またはlookahedまたはlookbehindを使用することをお勧めします...

//still includes the ResourceManager
[^\w\.]Resources\.(?!ResourceManager)(?<global_key>\w+)\.(?<key>\w+)
[^\w\.]Resources\.(?<global_key>(?!ResourceManager)\w+)\.(?<key>\w+)
4

1 に答える 1

1

私があなたを正しく理解していれば、あなたは正しいことをしているが、否定的な先読みを置き忘れている。内にある必要がありますkey

[^\w\.]Resources\.(?<global_key>\w+)\.(?!ResourceManager)(?<key>\w+)
于 2012-06-21T08:00:46.267 に答える