Cabaran: Mencipta ungkapan biasa yang membezakan antara:
Percubaan Awal:
Ungkapan biasa awal yang disediakan berkesan mengesan kurungan seimbang dalam kenyataan untuk/semasa. Walau bagaimanapun, ia bergelut apabila ungkapan gelung mengandungi panggilan fungsi.
^\s*(for|while)\s* \( # match the initial opening parenthesis (?P<balanced> [^()] | \( (?P=balanced)* \) )* # Look for a sequence of balanced substrings \) # Finally, the outer closing parenthesis. \s*;\s*
Pendekatan Disemak:
Leraian yang dicadangkan menyimpang daripada pendekatan berasaskan regex. Sebaliknya, ia menggunakan rutin yang ringkas:
Kelebihan:
Atas ialah kandungan terperinci Bolehkah Ungkapan Biasa Mengenal pasti dengan betul Semi-Kolon Ditamatkan C Untuk dan Sementara Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!