Mengesan C "untuk" dan "semasa" Gelung dengan Penamatan Separuh Kolon
Padanan C untuk atau gelung sementara yang berakhir dengan separuh -kolon menggunakan ungkapan biasa boleh mencabar. Pendekatan biasa melibatkan penciptaan kumpulan yang dinamakan untuk memadankan subrentetan yang seimbang, memastikan keseluruhan badan gelung terkandung dalam kurungan.
Walau bagaimanapun, kaedah ini goyah apabila badan gelung menyertakan panggilan fungsi, memecahkan keseimbangan. Pendekatan yang dipermudahkan menggunakan fungsi bukan regex boleh mengatasi isu ini.
Fungsi Tersuai untuk Pemadanan Gelung
Fungsi tersuai berikut mengambil rentetan input dan mencari untuk atau gelung while diikuti dengan koma bertindih:
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
The fungsi:
Penggunaan
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.")
Kelebihan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Gelung C 'untuk' dan 'semasa' Berakhir dengan Koma Bertitik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!