偵測以分號結尾的C「for」和「while」迴圈
符合以分號結尾的C for 或while 迴圈- 使用正規表示式的冒號可能具有挑戰性。一種常見的方法是建立一個命名組來匹配平衡子字串,確保整個循環體包含在括號內。
但是,當迴圈體包含函數呼叫時,此方法就會失效,從而打破平衡。使用非正規表示式函數的簡化方法可以解決此問題。
用於循環匹配的自訂函數
以下自訂函數採用輸入字串並搜尋 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中文網其他相關文章!