Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Menjadikan Ungkapan Biasa Python Saya Tidak Tamak?
Python Non-Greedy Regex: Menyahmistifikasi Kuasa *?
Dalam bidang ungkapan biasa, ketamakan berkuasa. Binaan seperti ".*" sering menggunakan teks sebanyak mungkin, menjadikan anda padanan yang membosankan. Tetapi bagaimana jika anda sedang mencari pendekatan yang lebih pembedahan, mengutamakan padanan awal?
Penyelesaian terletak pada *?, pengubah suai yang mengubah regex yang tamak menjadi sentinel yang tidak tamak. Kad bebas yang tidak mencolok ini memberitahu Python untuk memadankan bahagian terkecil teks yang sesuai dengan corak.
Pertimbangkan contoh "a (b) c (d) e". Regex standard "(.)" akan memperoleh "b) c (d" yang besar. Untuk menjinakkan tingkah laku yang terlalu bersemangat ini, gunakan kuasa ?: "(.*?)". Sekarang, Python akan selak dengan patuh pada "b", membiarkan yang lain tidak terganggu.
Kelayakan *? Ia memberi kuasa kepada corak regex untuk merebut mana-mana serpihan yang memenuhi kriteria, berhenti apabila sempadan dilangkau atau coraknya. letih.
Jadi, apabila anda memerlukan regex anda untuk lebih terkawal, tambahkan * ajaib itu?". Biarkan ia membimbing pasangan anda ke arah panggilan sebenar mereka, satu langkah yang tidak tamak pada satu masa.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjadikan Ungkapan Biasa Python Saya Tidak Tamak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!