Hi,
ich habe ein Problem mit der Regex-Syntax und zwar will ich in einem C-File nach einer bestimmten Methode suchen.. Diese Methode darf im Code aber nur einmal vorkommen darum will ich mit Regex bzw MatchCollection überprüfen ob dies der Fall ist..
Mein C-Testfile das durchsucht werden soll sieht so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| //------------------------------------ bool testMachine_init() { return statemachine_init(var1, var2,var3,var5); }
bool testMachine_init() { return statemachine_init(var1, var2,var3,var5); } //-------------------------------------------- |
Jetzt will ich praktisch mit MatchCollection erreichen dass der Count=2 anzeigt, aber es zeigt mir immer nur an das es "eine" statemachine_init Methode gefunden hat.
hier ist der dazugeöhrige C# Code
C#-Quelltext
1: 2:
| string FunctionToRead = "statemachine_init"; MatchCollection matches = Regex.Matches(CSource, " " + functionToRead + @" *\(.*\) *;", RegexOptions.Singleline) |
mit "matches.Count" sollte es mir jetzt eigentlich 2 anzeigen da die statemachine_init Methode 2 mal vorhanden ist, aber es zeigt mir immer eine 1 an und ich hab keine Ahnung was ich falsch mache..
mfg stargate
Moderiert von
Christian S.: C#-Tags hinzugefügt
Moderiert von
Christian S.: Topic aus C# - Die Sprache verschoben am Di 29.05.2012 um 18:30