セミコロンで終わる C の "for" および "while" ループの検出
セミコロンで終わる C の for または while ループの照合正規表現を使用した -colon は難しい場合があります。一般的なアプローチでは、バランスのとれた部分文字列に一致する名前付きグループを作成し、ループ本体全体が括弧内に含まれるようにします。
ただし、ループ本体に関数呼び出しが含まれる場合、この方法は失敗し、バランスが崩れます。非正規表現関数を使用した簡略化されたアプローチにより、この問題を解決できます。
ループ マッチングのカスタム関数
次のカスタム関数は、入力文字列を受け取り、for を検索します。または、while ループの後にセミコロンを続けます:
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
関数:
使用法
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.")
利点
以上がセミコロンで終わる C の「for」および「while」ループを確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。