Heim >Backend-Entwicklung >C++ >Wie kann ich C-„for'- und „while'-Schleifen, die mit einem Semikolon enden, zuverlässig erkennen?
Erkennen von C-„for“- und „while“-Schleifen mit Semikolon-Abschluss
Abgleich von C-for- oder while-Schleifen, die mit einem Semikolon enden -Doppelpunkt mit einem regulären Ausdruck kann eine Herausforderung sein. Ein gängiger Ansatz besteht darin, eine benannte Gruppe zu erstellen, um ausgeglichene Teilzeichenfolgen abzugleichen und sicherzustellen, dass der gesamte Schleifenkörper in Klammern steht.
Diese Methode gerät jedoch ins Stocken, wenn der Schleifenkörper einen Funktionsaufruf enthält, wodurch das Gleichgewicht gestört wird. Ein vereinfachter Ansatz mit einer Nicht-Regex-Funktion kann dieses Problem lösen.
Benutzerdefinierte Funktion für den Schleifenabgleich
Die folgende benutzerdefinierte Funktion nimmt eine Eingabezeichenfolge und sucht nach einem for oder while-Schleife gefolgt von einem Semikolon:
def find_loop_and_semicolon(string): pos = string.find('(') + 1 open_br = 0 while open_br >= 0: char = string[pos] if char == '(': open_br += 1 elif char == ')': open_br -= 1 pos += 1 return pos if open_br == 0 and string[pos] == ';' else -1
Die Funktion:
Verwendung
string = "for (int i = 0; i < 10; doSomethingTo(i));" result = find_loop_and_semicolon(string) if result != -1: print("Loop found and terminated with a semi-colon.") else: print("No matching loop found.")
Vorteile
Das obige ist der detaillierte Inhalt vonWie kann ich C-„for'- und „while'-Schleifen, die mit einem Semikolon enden, zuverlässig erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!